#include <stdio.h>
int main(void)
{
fork();
fork();
printf("ppid %d pid %d\n", getppid(), getpid());
return 0;
}
上面的代碼有時打印爲什麼這個ppid == 1?我錯過了關於fork()的東西嗎?
$ ./a.out
ppid 3389 pid 3883
ppid 3883 pid 3885
ppid 1 pid 3884
ppid 3884 pid 3886
爲什麼是過程3884的PPID 1?它不應該是3883嗎?
當進程3883從main返回並且不再存在時,它怎麼能是3883?如果它沒有退出,這將是一個讓你的系統無法正常工作的好方法。 –