拾遗

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.

最新文章

  1. 解决python编码格式错误问题
  2. [转]大白话系列之C#委托与事件讲解(三)
  3. Unix 编程
  4. ACMDP之最长公共子序列长度—HDU1159
  5. openssl生成自签名证书
  6. svnkit添加节点
  7. tcpdump VS tshark用法(转)
  8. 设置span的宽度
  9. Android开发——使用LitePal开源数据库
  10. 简述在javascript和jquery中cookie的使用
  11. 浏览器报XMLHttpRequest cannot loadxxxxxx
  12. 编写计算器程序学习JS责任链模式
  13. 关于git中Pageant开机启动且自动关联秘钥
  14. Windowsx64位安装pymssql并完成与数据库链接
  15. 自适应图片宽度的jQuery焦点幻灯轮播代码
  16. Spring学习笔记:spring与mybatis四种整合方法
  17. 博客已迁移至512z.com
  18. Tomcat原理的一点看法
  19. 一、WPF 2个datagrid之间同步进度条
  20. android 闹钟设置问题

热门文章

  1. 【mysql】- 事务隔离级别和MVCC篇
  2. Oracle11.2安装和完全卸载及卸载后重装等问题
  3. Java基础之Bridge method(桥接方法)
  4. Zabbix添加监控主机
  5. Redis在Linux下的安装
  6. Spring Cache缓存注解
  7. 算数组的长度cpp
  8. Laravel 定时任务调度 的 Artisan 命令调度
  9. Series结构(常用)
  10. 线程_threading合集