【发布时间】:2015-04-13 12:35:50
【问题描述】:
下面的代码将产生尽可能多的孩子。自己不会再分叉,一旦父进程退出就会变成僵尸。
父进程会产生多少子进程?
int main(int argc, char *arg[])
{
while(fork() > 0);
}
【问题讨论】:
-
我不知道这是否要求效率,但
while(fork() >= 0)会更好。或者更糟,取决于所有者是谁。 -
如果我添加 >= 儿子也会生儿子,我不想那样。
-
僵尸进程仍然分配有它们的 pid,所以如果你有足够的内存来保存进程数据,max_pids 可能是你的限制。