当两个进程等待相同的 child 时会发生什么?

What happens when two processes wait for the same child?

据我了解,wait/waitpid 的默认行为是等待进程中的状态更改。我找不到的是使用相同 pid_t 参数的两个进程 waitpid 的预期行为。

同时执行 return 并继续执行,还是只有一个人注意到状态变化的竞争条件?

一个进程只有parent可以wait(),一个进程当然可以只有一个parent.

但是,parent 进程可能有多个线程。在多个线程等待相同 child 的情况下,POSIX 指定只有其中一个线程会看到状态更改。要允许多个线程看到状态更改,您必须使用带有 WNOWAIT 标志的 waitid()。

POSIX: status information