Skip to content
果冻虾仁 edited this page Aug 22, 2017 · 5 revisions

函数原型

#include <sys/types.h>
#include <sys/wait.h>

pid_t wait(int *status);

返回值

-1 错误
其他 被终止的子进程的id

错误类型

错误时,系统记录的错误代码errno,有两种:

ECHILD 没有子进程
EINTER 收到中断信号signal,立即返回

检测退出状态的宏

缩写含义 描述
WIFEXITED wait if exited 子进程正常退出时返回真值
WEXITSTATUS wait exit status 当上面宏为真时,返回子进程正常退出时状态
WIFSIGNALED wait if signaled 子进程由于信号导致终止,返回真值
WTERMSIG wait terminate signal 当上面宏为真时,返回终止子进程的信号类型
WIFSTOPPED wait if stopped
WSTOPSIG wait stop signal
WIFCONTINUED wait if continued
上表记忆方式为3+1,三对加一单

另外有书中提及WCOREDUMP,即wait core dump(核心转储),不过man手册中未提及此宏

Linux环境编程API

C语言API包含部分标准C的API、POSIX标准的系统编程API(一些Linux独有的系统API会单独注明)。

头文件源码

大部分头文件源码在/usr/include目录下。

安装man手册

因为涉及到大量的POSIX编程。所以最好下载POSIX函数的man手册。

Ubuntu

apt-get install manpages-posix        
apt-get install manpages-posix-dev

默认安装了manpages-dev,所以不装POSIX的man手册是可以查看绝大部分API的。
但是不装的话,有些API是不能看到的,比如posix_spawn函数。

CentOS

yum install man-pages.noarch

关于目录

左侧的目录并非以函数为索引依据,主要是以系统的man手册页面为索引依据。
比如exec里面包含6个函数、pipe里面包含pipe()和pipe2()两个函数,但是它们都是属于一个man页面中。

Clone this wiki locally