→ bjk:因為parent有wait(NULL) 所以會等兒子先做完07/29 21:29
→ bjk:才跑else的那段程式碼07/29 21:29
: func(&k);
: printf("k=%d ", k);
: exit(0);
: }
: }
: (A) the output k of the parent process is 4
: (B) the output k of the child process is 4
: (C) the last output of k is 4
: 請問這段程式是怎麼跑的?
: 謝謝
fork共用code section
但不共用data section
所以父親的k和兒子的k不共用
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.105.81.102
推 mqazz1:謝謝 不過為什麼高彬的解答說 last output是parent的k? 07/29 21:25
→ bjk:因為parent有wait(NULL) 所以會等兒子先做完 07/29 21:29
→ bjk:才跑else的那段程式碼 07/29 21:29
※ 編輯: bjk 來自: 59.105.81.102 (07/29 21:30)
推 wheels:child exit後會送一個訊息給kernel通知parent wait結束 07/29 23:48
→ wheels:所以最後的那個k是parent的 07/29 23:48
推 da0910cc: 07/31 10:53