• c cpp编程用到的系统边角与其拾遗


    拾遗

    Q:unix编程怎么查一个函数在哪个头文件中
    A: 可以用诸如 man 3 printf

    Q: man后面接个数字什么意思,如man 3 printf
    A:如下 man man中的引用

    下表显示了手册的 章节 号及其包含的手册页类型。
    1 可执行程序或 shell 命令
    2 系统调用(内核提供的函数)
    3 库调用(程序库中的函数)
    4 特殊文件(通常位于 /dev)
    5 文件格式和规范,如 /etc/passwd
    6 游戏
    7 杂项(包括宏包和规范,如 man(7),groff(7))
    8 系统管理命令(通常只针对 root 用户)
    9 内核例程 [非标准

    Q: 怎么在man的所有章节中搜索
    A: man -k printf

    appweb@simon-ububtu18-desk-2:~/600.self/03.code/01.cpp/03.APUE$ man -k printf
    asprintf (3)         - print to allocated string
    dprintf (3)          - formatted output conversion
    fprintf (3)          - formatted output conversion
    fwprintf (3)         - formatted wide-character output conversion
    printf (1)           - format and print data
    printf (3)           - formatted output conversion
    snprintf (3)         - formatted output conversion
    sprintf (3)          - formatted output conversion
    swprintf (3)         - formatted wide-character output conversion
    vasprintf (3)        - print to allocated string
    vdprintf (3)         - formatted output conversion
    vfprintf (3)         - formatted output conversion
    vfwprintf (3)        - formatted wide-character output conversion
    vprintf (3)          - formatted output conversion
    vsnprintf (3)        - formatted output conversion
    vsprintf (3)         - formatted output conversion
    vswprintf (3)        - formatted wide-character output conversion
    vwprintf (3)         - formatted wide-character output conversion
    wprintf (3)          - formatted wide-character output conversion
    XtAsprintf (3)       - memory management functions
    
    

    可以看到1和3中都有 1中是对应shell的 3中对应的是程序库中的

    Q: 怎么查看编译器在哪些路径中搜索头文件
    A:如下:
    可以参见 https://stackoverflow.com/questions/344317/where-does-gcc-look-for-c-and-c-header-files
    大意与验证如下:

    # 对于c++的如下: 
    appweb@simon-ububtu18-desk-2:~/600.self/03.code/01.cpp/03.APUE$ `gcc -print-prog-name=cc1plus` -v
    ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
    #include "..." search starts here:
    #include <...> search starts here:
     /usr/include/c++/4.8
     /usr/include/x86_64-linux-gnu/c++/4.8
     /usr/include/c++/4.8/backward
     /usr/lib/gcc/x86_64-linux-gnu/4.8/include
     /usr/local/include
     /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
     /usr/include
    End of search list.
    ^C
    
    # 对于c的如下:  
    appweb@simon-ububtu18-desk-2:~/600.self/03.code/01.cpp/03.APUE$ `gcc -print-prog-name=cpp` -v
    Using built-in specs.
    COLLECT_GCC=cpp
    OFFLOAD_TARGET_NAMES=nvptx-none
    OFFLOAD_TARGET_DEFAULT=1
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
    Thread model: posix
    gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 
    COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=x86-64'
     /usr/lib/gcc/x86_64-linux-gnu/7/cc1 -E -quiet -v -imultiarch x86_64-linux-gnu - -mtune=generic -march=x86-64 -fstack-protector-strong -Wformat -Wformat-security
    ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/include"
    #include "..." search starts here:
    #include <...> search starts here:
     /usr/lib/gcc/x86_64-linux-gnu/7/include
     /usr/local/include
     /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
     /usr/include/x86_64-linux-gnu
     /usr/include
    End of search list.
    
    
  • 相关阅读:
    Java SE入门(十三)——高级API
    Java SE入门(十二)——修饰符与内部类
    Java SE入门(十一)——接口与多态
    数据结构与算法(一)——绪论
    break与continue的区别以及终止函数的return false
    文字超出隐藏显示省略号及鼠标放上去显示全部文字信息的写法
    组件有新增修改两种状态该怎么使用
    Math常用的属性和方法
    模块化开发及import用法
    element时间日期选择器组件设置默认时间
  • 原文地址:https://www.cnblogs.com/simoncook/p/12283160.html
Copyright © 2020-2023  润新知