1
我遇到fork/waitpid函數的問題。父級和多個孩子PID。 fork&waitpid - 函數
我試圖讓程序什麼首先處理並打印PIDS兒童和家長後PID
我的代碼:
int main(void)
{
pid_t pid;
int rv = 0;
int i = 1;
pid_t child_pids[2];
for (i = 0; i < 2; i++)
{
switch (pid = fork())
{
case -1:
perror("fork");
exit(1);
case 0:
pid = getpid();
exit(i);
break;
default:
child_pids[i] = pid;
break;
}
}
if (pid != 0 && pid != -1) {
for (i = 0; i<2; i++){
int status = 0;
printf("PARENT: waiting for child %d (%d)\n", i, child_pids[i]);
rv = waitpid(child_pids[i], &status, 0);
printf("Child: %d, Here!!!\n", i);
}
printf("parent pid = %d\n", getpid());
}
}
目前它創建父第一和孩子之後。所以有人有什麼建議做什麼?
什麼你的意思做「首先創建父」?父進程是正在運行的進程,它必須存在才能創建子進程。你能包括你的輸出嗎? – 2015-02-11 12:54:06