我從來沒有得到過這個;我正在做一個簡單的程序:創建子進程的父進程,並在它終止之後;這是代碼叉(),一個進程不終止?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int child(pid_t pid)
{
printf("process %d is terminating\n",pid);
exit(EXIT_SUCCESS);
}
int main()
{
int i;
for(i = 0; i < 2; i++){
if(fork() == 0)
child(getpid());
}
printf("father, pid=%d terminated\n",getpid());
/*if(wait(NULL) == -1)
perror("wait");*/
exit(EXIT_SUCCESS);
}
當我運行,所有過程打印出來,但一個過程,我想爸爸,但是我不知道,不會終止,因爲終端是活動的(不出現$); insted,如果我插入註釋行等待,程序運行正常;爲什麼這個?
你可以發佈你看到的終端輸出嗎? –
添加它;正如你所看到的,有時它運行正常,有時一個進程dosn't終止.. –