2013-12-22 39 views
2

我有3個孩子,在不同的時間以不同的順序結束每次,但我不知道如何得到哪一端第一我如何知道哪個孩子在C中退出?

我有這樣的事情,其中​​「贏家」,「第二」和「第三」是,隨機生成的時候,第一個結局是「贏家」,但我不知道它是

wait(&winner); 
wait(&second); 
wait(&third); 
printf("======================================\n"); 
printf("----------Classification---------------\n"); 
printf("======================================\n"); 
printf("-First-.... Team %d , time: %d\n",/*1*/, WEXITSTATUS(winner)); 
printf("-Second-.... Team %d , time: %d\n",/*2*/, WEXITSTATUS(second)); 
printf("-Third-.... Team %d , time: %d\n",/*3*/, WEXITSTATUS(third)); 

回答

7

你應該閱讀的wait(2)手冊頁誰。它返回等待進程的pid_t

您可能還想使用waitpid(如果您不想真正以阻塞方式等待,請使用W_NOHANG)。

另外,請閱讀signal(7)。你可以處理SIGCHLD ....

Advanced Linux Programming有幾個相關的問題。

+0

謝謝,你,工作很好,waitpid和一個比較函數 – jadelabe

相關問題