我对下面的代码有些怀疑。

#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/

10-09 15:32
查看更多