man-pages
我猜man大概是manual的意思,即它是个手册。这个手册最常用的的功能是查询:系统命令的用法、系统调用的用法和标准C库函数的用法。
其实,man相当于若干本手册,从官方网页上可以看到,每一本的功能如下:
- 1: User commands; man-pages includes a very few Section 1 pages that document programs supplied by the GNU C library.
- 2: System calls documents the system calls provided by the Linux kernel.
- 3: Library functions documents the functions provided by the standard C library.
- 4: Devices documents details of various devices, most of which reside in /dev.
- 5: Files describes various file formats, and includes proc(5), which documents the /proc file system.
- 7: Overviews, conventions, and miscellaneous.
- 8: Superuser and system administration commands; man-pages includes a very few Section 8 pages that document programs supplied by the GNU C library.
我们最常用的就是前三本手册,分别对应了系统命令、系统调用和标准C库。
使用方法
一般使用方法是在命令行终端中敲man 数字 名字
,数字指出第几本手册,名字指出要查询的函数或命令的名字,数字也可以省略,但是如果这个名字在别的手册里也有,如果没查到想要的手册就得写明数字来指定手册。
举例
系统命令——LS(1)
在终端中敲man ls
或man 1 ls
,可以看到很长的对ls
命令的说明,同时注意有个LS(1)
的写法,如果在别的地方看到类似的写法,就是说,可以在man的第一本手册里看到ls
命令的说明。
系统调用——OPEN(2)
系统命令也有一个open,如果不敲数字,就会查出系统命令open的手册,所以这里必须加数字。
man 2 open
在类Unix环境编程中,这非常有用。除了可以看到系统调用的用法,更重要的是可以知道该引用哪些头文件,再有一点是可以找到那些相关的宏或数据结构,在没有自动补全或足够的参考代码的环境下编程,这点很重要,因为编译器可不会告诉你它不认识的符号在哪个头文件里。
标准C库函数——PRINTF(3)
同open
,printf
也必须加数字。
man 3 printf
与系统调用一样,也是可以找到说明、头文件、相关的宏和数据结构。
如果你向大牛请教问题,大牛给了你一个命令或函数名字,那么在你进一步问出疑似伸手党的小白问题之前,最好先用
man
一下。