为什么fork()的返回值不是相反的?

Raj*_*ngh 1 linux operating-system

我们知道fork()创建一个新的子进程并将子进程的PID返回给父进程和子进程.0我在想他们为什么以这种方式设计它(返回值),为什么返回值不是相反的顺序我认为将父母的PID归还给孩子和0父母也可以工作,每个孩子都知道谁是其父母,每当它终止时,它都会向其各自的父母过程发出信号,这种方法的后果是什么?我错过了什么吗?

dbu*_*ush 5

这样做的原因是任何孩子都可以通过打电话来获得其父母的pid getppid,而父母则不知道孩子的pid是什么而不fork告诉它.

如果父母想要等待特定的孩子退出,则需要将孩子的pid传递给waitpid.