当前位置: 技术问答>linux和unix
请教多子进程问题
来源: 互联网 发布时间:2016-11-30
本文导语: 创建2个子进程的时候这样: int main() { pid_t child1; pid_t child2; child1 = fork(); child2 = fork(); if(child1 == 0) { printf("Child1:an"); ...
创建2个子进程的时候这样:
这样写的情况下 其实是创建了3个子进程, 子进程1里又创建了一个孙子进程。现在我想问的是,如果用循环来创建的话,就不会出现创建孙子进程的情况吗?为什么?
比如:
int main()
{
pid_t child1;
pid_t child2;
child1 = fork();
child2 = fork();
if(child1 == 0)
{
printf("Child1:an");
return 0;
}
if(child2 == 0)
{
printf("Child2:bn");
return 0;
}
else
{
waitpid(child1,NULL,0);
waitpid(child2,NULL,0);
printf("Parent:cn");
}
return 0;
}
这样写的情况下 其实是创建了3个子进程, 子进程1里又创建了一个孙子进程。现在我想问的是,如果用循环来创建的话,就不会出现创建孙子进程的情况吗?为什么?
比如:
for (int i = 0; i