2012-06-13 48 views
-3

叉已經發生代碼:wait()和出口()與親子處理

if (pid == 0) { 
    printf("I am child PID %d\n", getpid()); 
    exit(EXIT_SUCCESS); 
} else { 
    pid_t child; 
    int status; 
    //need wait() function that gets child pid and exit status 
    printf("Child PID %d terminated with return status %d\n", child, status); 
} 

如上代碼註釋,我需要一個適當的等待功能,將等待孩子結束,獲取孩子的PID和結果退出狀態代碼。謝謝!

+4

-1你認真嗎?你搜索了多少?如何等待()? –

+0

我想我可能對實施感到困惑。 wait()返回一個PID值,所以如果我這樣做:child = wait(&status);它應該返回孩子的PID,對吧?我得到-1的孩子的價值。 – Jordan

+2

閱讀說明書,它解釋了一切。 '如果wait()或waitpid()由於向調用進程傳遞一個信號而返回,則返回-1並將errno設置爲[EINTR]。 –

回答

0

您可以使用wait()waitpid()(同一頁,真的)。或者,如果您使用的是BSD,wait3()wait4()(但不是,AFAIK,wait2())。