******* fork.c *********
#include "basic.h"
int main()
{
int pid = Fork();
int x = 2;
if (pid == 0) {
printf("child: pid = %d, ppid = %d, x = %d\n", getpid(), getppid(), ++x);
sleep(3);
printf("child: pid = %d, ppid = %d, x = %d\n", getpid(), getppid(), ++x);
exit(0);
}
printf("parent: pid = %d, ppid = %d, x = %d\n", getpid(), getppid(), --x);
}
通過 gcc fork.c basic.c -o fork 編譯即可的 fork 程式。 運作 ./fork
可以看出父程序首先退出,退出前child的PPID為12256, 退出後子程序的PPID變為了 1.說明父程序退出後的子程序由 init 超級程序1領養。而該程序是不絕不會退出的。