【问题标题】:"no child process" error when calling waitpid twice两次调用waitpid时出现“无子进程”错误
【发布时间】:2013-10-08 14:01:19
【问题描述】:

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

第一次调用waitpid没有错误:

waitpid(pid, &status, WUNTRACED);

第二次:

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

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

更新:

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

【问题讨论】:

    标签: linux waitpid


    【解决方案1】:

    会不会是孩子在第二次waitpid() 调用之前终止了? AFAIR,waitpid() 等待子进程终止(或其他状态更改)。

    【讨论】:

    • 父进程调用waitpid收割子进程。如果子进程已经被收割,它不能是waitpid。这是正确的吗?
    猜你喜欢
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多