2014-09-12 83 views
0

为什么fork()系统调用不会将父进程ID返回给子进程并将零返回给父进程?由fork()系统调用返回的值

pid_t pid; 
pid = fork(); 

在本节中,对于叉的返回码()是零为孩子和儿童的(非零)过程ID是返回给父。

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

回答

0

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

0

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

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