我想用一个父进程创建10个子进程,但如何使父进程等待所有子进程?
我有这个C语言的代码
for(int cnt = 1; cnt<=10; cnt++) {
switch ( pid = fork() ) {
case -1:
perror("error");
break;
case 0:
printf("%d: child process, my PID=%d and PPID=%d\n", cnt, getpid(), getppid() );
sleep(10);
exit(0);
break;
default:
printf("%d: parent process, my PID=%d and PPID=%d\n", cnt, getpid(), getppid() );
sleep(10);
}
}
}
我尝试在默认部分使用wait和waitpid,但似乎父进程只等待下一个子进程退出。我如何使它等待所有10个子进程退出?
1条答案
按热度按时间c2e8gylq1#
您必须遍历子进程,如果需要,还可以获取状态。
就像这样: