waitid函数类似于waitpid,但提供了更多的灵活性。
- #include <sys/wait.h>
- int waitid(idtype_t idtype, id_t id, siginfo_t *infop. int options);
返回值:成功返回0,出错返回-1
waitid允许一个进程指定要等待的子进程。但它使用单独的参数表示要等待的子进程的类型,而不是将此与进程ID或进程组ID组合成一个参数。id参数的作用与idtype的值相关。
Constant | Description |
---|---|
P_PID | Wait for a particular process: id contains the process ID of the child to wait for. |
P_PGID | Wait for any child process in a particular process group: id contains the process group ID of the children to wait for. |
P_ALL | Wait for any child process: id is ignored. |
图8.2 waitid的idtype常量
options参数是图8.3中各标志的按位“或”。
Constant | Description |
---|---|
WCONTINUED | Wait for a process that has previously stopped and has been continued, and whose status has not yet been reported. |
WEXITED | Wait for processes that have exited. |
WNOHANG | Return immediately instead of blocking if there is no child exit status available. |
WNOWAIT | Don't destroy the child exit status. The child's exit status can be retrieved by a subsequent call to wait , waitid ,or waitpid . |
WSTOPPED | Wait for a process that has stopped and whose status has not yet been reported. |
图8.3 waitid的options常量
infop参数是指向siginfo结构的指针。该结构包含了有关引起子进程状态改变的生成信号的详细信息。