如何在for循环中跟踪fork()?

时间:2014-12-12 21:54:03

标签: for-loop fork trace

int i;
for(i=1; i<=3; i++)
{
    fork();
    printf("H\n");
}
Result 14 times H

1)当我尝试二叉树技术或2(电源)N。我最终有8个输出。 2)当我拿出大括号时,我最终得到8。

有什么区别?

1 个答案:

答案 0 :(得分:0)

i=1
fork -----------------------
"H" (printed)              "H" (printed)
i=2 (next loop)            i=2
fork----------             fork----------       
"H"          "H"           "H"           "H"    
i=3          i=3           i=3           i=3
fork----     fork----      fork----      fork----     
"H"    "H"   "H"    "H"    "H"    "H"    "H"    "H"

2 + 4 + 8 =打印&#34; H&#34;

没有花括号,你只得到循环后的printf,这是底行,  8张&#34; H&#34;