我对下面的代码有些怀疑。
#include <stdio.h>
#include <sys/types.h>
int main(void)
{
int pid=fork();
if(pid==0) sleep(5);
printf("Hello World %d %d\n",getpid(),pid);
if(pid>0) while(1){sleep(1);}
if(pid==0) printf("In child process!\n");
return 0;
}
子进程是否会终止?它会保持僵尸状态吗?
最佳答案
在您的示例中,子进程死亡,但父进程不知道它的exit
状态。因此,子进程(现在是僵尸)留在进程表中。
此外,家长继续等待孩子,继续奔跑。
关于c - 是僵尸吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18892274/