【发布时间】:2016-02-04 04:31:33
【问题描述】:
我有点困惑。据我了解, pid 为 -1 的 waitpid 意味着我等待所有孩子的完成,但是如果我向 WNOHANG 的 waitpid 添加一个选项,该选项表示如果没有完成则立即退出......这些似乎非常令人困惑。
为什么我要告诉计算机等待子进程完成,然后在没有子进程完成的情况下立即告诉它立即退出?
有人能解释一下这个选项和 WUNTRACED 选项吗?我不知道被追踪是什么意思。
【问题讨论】:
-
pid = -1 表示等待 any 孩子,而不是所有孩子。而“等待”是一个技术术语,指的是
wait(2)。 -
@melpomene 啊,是的,任何一个都非常不同。感谢您的指正。假设我有 3 个孩子……计算机如何确定要等待哪个?或者它是先到先得的类型,如果其中一个孩子完成然后计算机在技术上等待并继续前进?
-
@8this 如果你传递一个
-1的pid,它不会等待所有个孩子完成,它会等待any个孩子完成。一旦任何孩子完成了,它就会被收割。