维基百科说“一个终止但从未被其父进程等待的子进程成为僵尸进程。” 我运行这个程序:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
pid_t pid, ppid;
printf("Hello World1\n");
pid=fork();
if(pid==0)
{
exit(0);
}
else
{
while(1)
{
printf("I am the parent\n");
printf("The PID of parent is %d\n",getpid());
printf("The PID of parent of parent is %d\n",getppid());
sleep(2);
}
}
}
这会创建一个僵尸进程,但是我不明白为什么这里会创建一个僵尸进程?
程序的输出是
Hello World1
I am the parent
The PID of parent is 3267
The PID of parent of parent is 2456
I am the parent
The PID of parent is 3267
The PID of parent of parent is 2456
I am the parent
....
.....
但是为什么在这种情况下“子进程终止但没有被父进程等待”?