下面是使用C语言编写的一个进程扇程序:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main() {
    int num_processes = 10; // 子进程数量
    pid_t pid;

    printf("父进程PID: %d\n", getpid());

    // 创建子进程
    for (int i = 0; i < num_processes; i++) {
        pid = fork();

        if (pid < 0) {
            printf("进程创建失败\n");
            exit(1);
        } else if (pid == 0) {
            // 子进程
            printf("子进程PID: %d\n", getpid());
            exit(0);
        }
    }

    // 等待所有子进程退出
    for (int i = 0; i < num_processes; i++) {
        wait(NULL);
    }

    // 所有子进程都退出后,父进程输出自己的PID并退出
    printf("所有子进程都已退出,父进程PID: %d\n", getpid());

    return 0;
}

这个程序会创建一个父进程和一系列子进程。父进程首先输出自己的PID,然后依次创建子进程。每个子进程在创建后会输出自己的PID,并通过调用exit(0)退出。父进程会等待所有子进程退出,然后输出自己的PID,并通过return 0退出。

注意:在Windows系统上无法使用fork()函数创建子进程,可以考虑使用其他方式实现进程扇


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

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