,我們需要跟以下C程序的結果:結果一個小的C程序
main()
{
int pid, k, som;
som = 0; k = 2;
pid = fork();
if(pid == 0)
k=5;
else
wait(0);
for(int i = 1; i <= k; i++)
som += i;
printf("%d", som);
}
我的第一個期望是3.當一個叉調用時,該進程的內存被複制,並且兩個程序都運行。子進程然後執行,但k仍然等於2.所以最後,它執行1 + 2 = 3;
但是當這個程序被執行時,它輸出153.我還沒有得到最接近的線索爲什麼它輸出。
任何人都可以說出原因嗎?
offcourse。 Totaly忘記了這兩個過程都會產生產出。 – Ikke 2009-06-18 20:08:38