如何通过 fork 循环创建 n 个进程
要通过 fork() 循环创建 n 个进程,可以使用以下代码示例:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main() {
int n = 5; // 创建 5 个进程
for (int i = 0; i < n; i++) {
pid_t pid = fork(); // 创建子进程
if (pid == -1) {
// 创建进程失败
perror("fork");
return 1;
} else if (pid == 0) {
// 在子进程中执行具体操作
printf("子进程 %d\n", getpid());
// 子进程执行完毕后退出循环,避免子进程再次创建新的子进程
break;
}
}
// 等待所有子进程结束
for (int i = 0; i < n; i++) {
wait(NULL);
}
return 0;
}
这段代码会创建 n 个子进程,每个子进程会打印自己的进程 ID,然后退出循环。父进程会等待所有子进程结束后才结束。
注意,在使用 fork() 创建子进程时,需要注意避免子进程再次创建新的子进程,可以使用 break 语句跳出循环
原文地址: http://www.cveoy.top/t/topic/iskl 著作权归作者所有。请勿转载和采集!