Linux man 手册章节分类

来源:互联网 发布:激活码的软件 编辑:程序博客网 时间:2024/04/29 01:51
Linux的man很强大,该手册分成很多section,使用man时可以指定不同的section来浏览,各个section意义如下:
1 - commands
2 - system calls
3 - library calls
4 - special files
5 - file formats and convertions
6 - games for linux
7 - macro packages and conventions
8 - system management commands
9 - 其他

其中:
1是普通的命令
2是系统调用,如open,write之类的
3是库函数,如printf,fread
4是特殊文件,也就是/dev下的各种设备文件
5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8是系统管理用的命令,这些命令只能由root使用,如ifconfig
使用手册方式举例:
man 1 ls #查看第一章中的ls命令帮助
man 3 printf #查看库函数printf帮助

对于像open,kill这种既有命令,又有系统调用的来说,man open则显示的是open(1),也就是从最前面的section开始,如果想查看open系统调用的话,就得man 2 open


关于man的扩展man pages:

man pages是c语言的库函数man手册,该手册支持man查询ISO C标准库头文件和函数。

关于库函数和系统调用
库函数是高层的,完全运行在用户空间, 为程序员提供调用真正的在幕后完成实际事务的系统调用的更方便的接口。系统调用在内核态运行并且由内核自己提供。标准C库函数printf() 可以被看做是一个通用的输出语句,但它实际做的是将数据转化为符合格式的字符串并且调用系统调用 write() 输出这些字符串。
是否想看一看printf() 究竟使用了哪些系统调用? 这很容易,编译下面的代码:
#include <stdio.h>
int main()
{
printf("hello");
return 0;
}
使用命令gcc -o hello hello.c 编译。用命令 strace hello 跟踪该可执行文件。是否很惊讶? 每一行都和一个系统调用相对应。 strace是一个非常有用的程序,它可以告诉你程序使用了哪些系统调用和这些系统调用的参数,返回值。 这是一个极有价值的查看程序在干什么的工具。在输出的末尾,你应该看到这样类似的一行 write(1, "hello", 5hello) 。这就是我们要找的。藏在面具printf() 的真实面目。既然绝大多数人使用库函数来对文件I/O进行操作(像 fopen, fputs, fclose)。 你可以查看man说明的第二部分使用命令man 2 write 。man说明的第二部分专门介绍系统调用(像kill() 和read() )。
man说明的第三部分则专门介绍你可能更熟悉的库函数(像cosh() 和random() )。
你甚至可以编写代码去覆盖系统调用,用它来完成一些更有益的事,像让内核在每次某人删除文件时输出 “ Tee hee, that tickles! ” 的信息。
0 0
原创粉丝点击