→ JiDung:喔.. 原來有人解了... 01/06 20:29
※ 編輯: JiDung 來自: 140.113.5.216 (01/06 20:58)
→ yyc1217:您好,在第一部分我想應該是3 fork共產生6個,含main為7 01/06 21:38
→ yyc1217:不知道這樣理解是否有誤? 謝謝! 01/06 21:38
→ yyc1217:啊啊不好意思 是共產生7個,然後含main為8個沒錯= = 01/06 21:43
→ yyc1217:謝謝您! 01/06 21:43
推 cisco:您好~ 我是卡在一開始為什麼會產生8個process >< 01/07 16:37
回樓上
當一開始的main 執行完第一個fork();之後
此時 會多出 兒子一號
而你要注意的是
兒子一號 會從產生出這位兒子的fork之後(第一個fork之後)
"接著"往下做 原始main父親 也是同一個地方"接著"往下做
也就是說
int main()
{
//程式執行到這時候 只有原始main
fork(); //只有原始main執行fork();
//程式執行到這 有原始main跟 兒子一號
//他們都是要從"這"繼續往下執行
fork(); //原始main跟兒子一號都有執行第二次的fork();
//到這裡原始main產生了兒子二號 而兒子一號產生了兒子三號
//所以到這的時候 已經有 原始main 兒子1號~兒子3號 共四個人
fork(); //上述所講的四個人 都有執行到
//所以又蹦出四個人(兒子4~7號)
//所以到這裡總共有 原始main跟 兒子1~7號 共八個人
}
→ kiwidoit:1*2=2 2*2=4 4*=8 01/07 17:49
→ kiwidoit:fork() fork() fork() 01/07 17:49
※ 編輯: JiDung 來自: 140.113.235.115 (01/07 18:13)
推 bahamut5461:看完推 01/07 23:59
推 cisco:我懂了~ 感謝您!! 01/08 12:00
推 rockmanexe24:GET! Thank you very much! 02/03 11:28
推 fenir:看懂了,感謝! 11/22 15:24
推 zoo868e: 厲害 08/06 13:37