if (fork() == 0) {
printf("[Child] I'm exiting\n");
}
else {
wait(NULL);
printf("[Parent] child exited\n");
}
wait(NULL)
等待任何孩子來完成,然後它會之後執行的一切。所以在這種情況下,程序的輸出是什麼?什麼是等待(null)在這種情況下做什麼,程序的輸出是什麼?
我們可能先進入父母,然後我們將不得不等待孩子完成,因此它的[Child] ..... , [Parent] ....
打印。
我們還可以進入子,其打印東西,然後父母,在這種情況下wait(NULL)
會永遠等待,因爲child process
已經completle。所以在這種情況下,輸出是只是[Child].....
?
我跑1000
倍,但它看起來像它的輸出始終孩子 ...父
感謝
'任何孩子等待complete' ::是這樣,*塊*直到wait()的回報。如果它返回,您**知道孩子已經終止。 – wildplasser