2016-02-06 100 views
0

我已經運行下面的代碼:系統調用fork不退出

#include <stdio.h> 
#include <sys/types.h> 
int main() 
{ 
    fork(); 
    fork(); 
    fork(); 
    printf("hello\n"); 
    return 0; 
} 

印刷字「喂」 8次後,該程序不會退出。這背後的原因是什麼?

+1

爲什麼說這不是退出?什麼讓你覺得這個症狀? –

+0

我想你會得到很多* hellos * - 也許是閱讀'fork'手冊的時候了 –

+0

運行程序後,它仍然沒有重定向到終端中的'$'符號。 –

回答

3

這是計算2^3時偶然有趣的方法。第一個叉讓第二個叉發生兩次,他們每個都使第三個叉發生兩次,所有8個孩子運行printf!這8個過程確實退出,但你的提示消失了。正如評論者所暗示的,你基本上誤解了fork()是什麼以及它在做什麼。但是一路上你製作了一個有趣的玩具,真是太棒了!