首页 > 代码库 > 【APUE】wait与waitpid函数

【APUE】wait与waitpid函数

当一个进程终止时,内核就向其父进程发送SIGCHLD信号。因为子进程终止是个异步事件,所以这种信号也是内核向父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。

调用wait或waitpid的进程发生的情况如下:

1.如果所有子进程都还在运行,则阻塞

2.如果一个子进程已终止,正等待父进程获取其终止状态,则取得该子进程的终止状态立即返回

3.如果它没有任何子进程,则立即出错返回

#include <sys/wait.h>

pid_t wait(int *statloc);

pid_t waitpid(pid_t pid,int *statloc,int options);