要通过 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 语句跳出循环

如何通过 fork 循环创建 n 个进程

原文地址: http://www.cveoy.top/t/topic/iskl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录