好的,所以我一直在stackoverflow上寻找这个,并且肯定在谷歌上搜索了半个小时,但我得到的答案似乎与我真正想做的事情几乎没有任何关系,希望有人能帮助我一,代码如下:
int cCount = 0;
while(cCount < 2)
{
switch(fork())
{
case 0:
cCount++;
break;
case -1:
printf("Failed");
break;
default:
break;
}
}
return;
现在对于出现的问题,此代码假设创建一个具有 3 个级别(0、1、2)的树,
0 是它开始分叉的主要父代
1 是 0 中父母的 2 个孩子
2 是 1 中 2 位父母的 4 个孩子
创建对称树。基本上虽然我有几个问题:
Switch 在每个循环上都执行 fork,所以理论上如果 fork > 0,它仍然会被 fork 为父级创建一个子子级,并且循环将继续进行,因此它可能会以父-父-父-父链结束,而不是每个父母 2 个孩子,然后 2 个孩子 4 个,等等。fork 怎么知道该怎么做?
假设我想做一棵树,在最后一层(级别)附加一个孩子,例如,我将如何开始?
我正确理解 fork 吗?如果不是,请解释一下,网上有很多教程,但它们似乎都比它可能的复杂得多。
干杯,谢谢 对我好一点,英语不是我的母语。