讓我們假定存在具有PID = 1
一個過程,它運行以下代碼:故障理解fork()的輸出
int a = fork();
int b = fork();
printf(「a: %d, b: %d\n」, a, b);
讓我們進一步假設新PID
旨意給出一個接一個,從而第二給定PID
將2
,然後3
等
一種可能的輸出:
a:2, b:3
a:2, b:0
a:0, b:4
a:0, b:0
我有一些麻煩試圖瞭解上述代碼的輸出,尤其是爲什麼a:0, b:4
和a:2, b:3
。
謝謝。這可能是一個簡單的問題,但爲什麼在'PID 3'中,'a = 2'?怎樣才能讓'再見'2'? –
由於3是1的孩子,因此直到第二次調用'fork'時才完整克隆1,包括'a'的值。 –