考慮下面的代碼,我明白,當你調用一個岔路口,最如果資源被轉給孩子處理。現在幾乎每一個我看過的福克例子都像我擁有的那樣。從它的外觀來看,我不明白父進程是如何被調用的,因爲它在else塊中。
問題B:
在孩子理線代碼被執行後,它會自動知道它現在已經進入父進程?在其他例子中,我也看到了一個等待(NULL),如果它正在進入else塊,那麼等待的角色是什麼。假設我想要執行同一個父進程的兩個子進程,這兩個進程是否並行運行,然後在完成後運行父進程的代碼?謝謝。
#include <stdio.h>
#include <unistd.h>
int main()
{
pid_t pid;
pid = fork();
if(pid == 0){
printf("Hello World");
}
else{
printf("Hello World");
}
return 0;
}
要學習的經驗:fork()被調用一次,但它返回兩次。父母和孩子是不同的過程。 – wildplasser 2013-02-22 23:29:29
您是否意識到fork會導致**兩個並行執行的進程?一個是父母,一個是孩子。 – 2013-02-22 23:30:09
你是什麼意思返回兩次?我很難想象這是如何工作的 – markfiel 2013-02-22 23:30:17