调用waitpid两次时出现“no child process”错误

时间:2013-10-08 14:01:20

标签: linux waitpid

出于某种原因,我必须在同一个子进程上调用waitpid两次:

第一次调用waitpid并且没有错误:

waitpid(pid, &status, WUNTRACED);

第二次:

waitpid(pid, &status, WNOHANG|WUNTRACED);

发生错误:“没有子进程”。我的代码有什么问题吗?

更新

如果子进程在我第一次调用waitpid之后或之前已经退出,这意味着父进程已经收到了这个子进程,则第二次调用waitpid会导致错误。这是对的吗?

1 个答案:

答案 0 :(得分:4)

可能是孩子在第二次waitpid()电话之前终止了吗? AFFAIR,waitpid()等待子进程终止(或其他状态改变)。