fork():子进程始终为零并且始终是唯一的?这是怎么回事?

COO*_*ANS 3 unix pid child-process

我读过男人和其他地方,但我正在努力解决这个问题.子进程始终是唯一的,但在分叉的任何例子中,我发现孩子的PID值必须为0.如果有aremany孩子,他们不能全为0,否则就不是唯一的?

zwo*_*wol 6

子进程的pid永远不会为零. fork向孩子返回零,告诉孩子它是孩子.但是,子进程的pid是fork返回进程的值.(请记住fork,假设它成功,返回两次 - 一次在孩子中,一次在父母身上.)你可以通过编写一个程序来确认这一点,该程序将getpid孩子的结果与fork返回到父母的值进行比较(稍微一点) IPC).