當我等待一個特定的正在運行的進程組是一個子進程時,WIFEXITED返回true,表示進程已退出?這是它的工作方式?似乎有些我不理解....爲什麼WIFEXITED在運行過程中返回True?
if (waitpid(-pgid, &pstatus, WUNTRACED|WNOHANG) == -1)
perror("Wait error");
if (WIFEXITED(pstatus)) {
strncpy(buf, "Exited", buf_size);
return 0;
啊,我做了重新初始化爲0,但現在我有點明白了。但我不太明白如何判斷是否還在運行或者是否退出(沒有阻止)。 – 2009-10-29 12:23:22
如果您的任何孩子改變了狀態(死亡),waitpid將返回一個正數。 – 2009-10-29 12:25:51
哦,我現在明白了......我需要採取返回值和狀態值來獲取過程的狀態。 (返回值不僅僅是錯誤的)。謝謝! – 2009-10-29 12:40:26