这些fork()创建了多少个僵尸和孤立进程

时间:2018-01-24 21:52:12

标签: c operating-system fork

if (fork() == 0) for(;;) sleep(1);
else exit(0);

我知道什么是僵尸和孤儿进程,但不知道如何回答这个问题。请解释一下,通过执行此代码可以生成多少个僵尸和孤立进程。谢谢!

1 个答案:

答案 0 :(得分:2)

只有一个fork,所以只有一个孩子。父进程没有wait进行子进程退出。孩子进入无限循环,此后不久父母就存在了,所以它变成了一个孤儿的过程。所以:0个僵尸,1个孤儿。

但是如果fork失败,那么根本就没有子进程,而且父进程仍然存在。