在下面的代码中,fork是否实际上并行或一个接一个地运行?C - 当并行执行fork()时等待(NULL)的含义
wait(NULL)
是什么意思?
(该程序创建子进程的n数,n经由命令行供给)
int main (int argc, char *argv[]) {
int i, pid;
for(i = 0; i < atoi(argv[1]); i++) {
pid = fork();
if(pid < 0) {
printf("Error occured");
exit(1);
} else if (pid == 0) {
printf("Child (%d): %d\n", i + 1, getpid());
exit(0);
} else {
wait(NULL);
}
}
}
“man wait”的哪个部分你不明白? – 2014-10-21 22:17:39
或者,根据你的手册页,'man 2 wait' :) – 2014-10-21 22:18:11
我只是想知道,如果在上面的代码中 - 它会等待孩子完成之前创建一个新的孩子? – YemSalat 2014-10-21 22:19:25