考虑以下代码
for(i=1;i<=4;i++)
{
int pid=fork();
if(pid==0)
{
printf("\nI am child %d\n",i)
}
else
{
wait();
printf("\n I am parent %d\n",i)
}
}
输出
我是孩子1
我是孩子2
我是孩子3
我是父母3
我是父母2
我是孩子3
我是父母3
我是父母1
我是孩子2
我是孩子3
我是父母3
我是父母2
我是孩子3
我是父母3
所以我的观察结果是输出总是一个具有2 ^ 4-2输出的平衡树,这将是一个使用以下观察的平衡树
第一个父叉创建一个子,然后子fork创建一个子,所以孩子正在创建它的子,直到没有循环终止。 然后在非常深的时候,孩子打印我然后它的兄弟父母,我们向上打印每个兄弟姐妹。
我在观察中是对的吗?
代码更改
for(i=1;i<=4;i++)
{
int pid=fork();
printf("\nvalue of i is %d",i)
}
输出
i的值是1
i的值是2
i的值是3 纳瑟尔@纳瑟尔汗:〜$ i的值是3
i的值是2
i的值是3
i的值是1
i的值是2
i的值是3
i的值是3
i的值是3
i的值是2
i的值是3
i的值是3
naseer @ naseer-khan:〜$
有人可以解释我现在发生了什么,甚至命令提示会在某些迭代中显示出来吗?