【发布时间】:2016-02-26 19:05:16
【问题描述】:
我正在尝试创建 5 个孩子和 1 个父母。但是父母会创建它们(至少 4 个。因为首先我们需要分叉)但它会创建一堆孩子。找不到我做错了什么。请问有什么办法吗?
child0=fork();//first process
if(child0>0)//Parent
{
//Create children
child1=fork();
child2=fork();
child3=fork();
child4=fork();
cout<<"i am child 0 "<<child0 <<" ";
cout<<"i am child 1 "<<child1;
cout<<"i am child 2 "<<child2;
cout<<"i am child 3 "<<child3;
cout<<"i am child 4 "<<child4;
wait(child0);
wait(child1);
wait(child2);
wait(child3);
wait(child4);
}
else if(child0<0)
{
printf("fork() failed!\n");
exit(1);
}
else
{
cout<<"i am child0";
exit(0);
}
【问题讨论】:
-
你执行了很多分叉而不检查返回的 id。很多孩子也在分叉更多的孩子。