天天看點

linux的子程序和父程序,使用代碼驗證linux子程序與父程序的關系

*******  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領養。而該程序是不絕不會退出的。