2014-09-12 126 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