用c语言编程产生一个进程扇即一个父进程产生一系列子进程要求每个子进程输出自己的PID后退出父进程等所有子进程都退出之后也输出自己的PID然后退出。
下面是使用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 著作权归作者所有。请勿转载和采集!