fork()系统调用返回的值

时间:2014-09-12 20:19:37

标签: process fork

为什么fork()系统调用没有将父进程的进程ID返回给子进程并将0返回给父进程?

pid_t pid;
pid = fork();

在本节中,fork()的返回码对于子节点为零,子节点的(非零)进程id返回给父节点。

如何从孩子那里找出父母的PID?

2 个答案:

答案 0 :(得分:0)

您可以在执行fork()之前保存它。编写fork()以返回在fork完成之前不知道的id。

答案 1 :(得分:0)

您始终可以在fork之前获取父级的PID并将其保存在变量中。在fork之后它将是相同的。 跑吧:

pid_t parent;
....
parent = getpid();
pid = fork(); //If pid is 0 your parent's pid is in parent