Skip to content

Latest commit

 

History

History
37 lines (32 loc) · 1.2 KB

wait.md

File metadata and controls

37 lines (32 loc) · 1.2 KB

函数原型

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

pid_t wait(int *status);

函数作用

函数作用进程回收。是一个阻塞函数,调用一次只能回收一个子进程。

  1. 阻塞并等待子进程退出
  2. 回收子进程残留资源
  3. 获取子进程结束状态(退出原因)

返回值

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