#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手册中未提及此宏