有人可以帮助我了解如何创建具有相同父进程的多个子进程,以便完成特定工作的“某些”部分吗?
例如,应用于子进程的外部排序算法;每个子进程对一部分数据进行排序,最后父进程将它们合并。
编辑:也许我应该提到用循环分叉多个子进程..
以下是如何分叉 10 个孩子并等待他们完成:
pid_t pids[10];
int i;
int n = 10;
/* Start children. */
for (i = 0; i < n; ++i) {
if ((pids[i] = fork()) < 0) {
perror("fork");
abort();
} else if (pids[i] == 0) {
DoWorkInChild();
exit(0);
}
}
/* Wait for children to exit. */
int status;
pid_t pid;
while (n > 0) {
pid = wait(&status);
printf("Child with PID %ld exited with status 0x%x.\n", (long)pid, status);
--n; // TODO(pts): Remove pid from the pids array.
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)