c-当child终止时再次分叉

  • 本文关键字:分叉 终止 child c fork
  • 更新时间 :
  • 英文 :


当子进程终止时,我们如何保持分叉?当孩子终止时,我的程序应该休眠10秒,然后再次分叉孩子。我使用了一个do-while循环,其中wait(0(是这样的条件。

do{
if (fork() == 0)
{
...
return 0;
}
}while(wait(0));

但是,它没有等十秒钟就再次叉掉了孩子。

一旦您从子级获得状态,您的循环将立即终止。

你需要把它重写成类似的东西:

for (;;) { // Infinite loop.
// May need to change the condition depending on when
// you want to stop the program
if (fork() == 0)
{
...
return 0;
}
while(wait(0)); // may also want to check for wait's failure
sleep(10);
}

最新更新