waitid函数
Single Unix Specification的XSI扩展包含了附加函数,用于接收进程的退出状态。waitid函数类似于waitpid,但是提供额外的灵活性。
#include <sys/wait.h>
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);
|
Returns: 0 if OK, 1 on error |
像waitpid,waitid允许进程专门接收某一子进程的终止状态。取替了将PID(进程ID)和PGID(进程组ID)捆绑成单独的一个参数,用两个分开的参数代替。
id的值是根据idtype的值而定的,下面是它可选的值:
Constant |
Description |
---|---|
P_PID |
子进程的PID(进程ID) |
P_PGID |
子进程的PGID(组ID) |
P_ALL |
所有子进程,ID参数被忽略。 |
options参数是一个掩码位,用标记的OR操作决定最后的值。这个标记指示了,哪些状态改变是调用者感兴趣的。
Constant |
Description |
---|---|
WCONTINUED |
之前已经停止的进程,但它没有释放资源 ,并且没有报告它的运行状态。 |
WEXITED |
已经退出的进程。 |
WNOHANG |
如果没有可用的子进程退出状态,那么立即返回,而不是阻塞进程。 |
WNOWAIT |
不删除子进程的退出状态。子进程的退出状态可以被后续调用的wait, waitid或waitpid接收。 |
WSTOPPED |
子进程已经停止,但还没有报告它的状态。 |
infop参数是一个指向siginfo结构的指针。这个结构包含了关于在子进程中已产生的信号的详细信息。