在C语言中,使用fork函数可以创建一个新的子进程。fork函数会复制当前进程的所有资源(包括代码、数据、堆栈等),并创建一个新的进程。原始进程被称为父进程,新创建的进程被称为子进程。
fork函数的原型如下:
#include <unistd.h>
pid_t fork(void);
fork函数的返回值有以下三种情况:
使用fork函数创建n个子进程的方法是通过循环调用fork函数n次。每次调用fork函数都会创建一个新的子进程。
下面是一个示例代码,展示如何使用fork函数创建n个子进程:
#include <stdio.h>
#include <unistd.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("This is child process %d\n", i+1);
return 0;
} else {
// 父进程
printf("Created child process %d\n", pid);
}
}
// 等待所有子进程结束
for (int i = 0; i < n; i++) {
wait(NULL);
}
return 0;
}
上述代码中,通过循环调用fork函数创建了5个子进程。在父进程中,会打印出每个子进程的进程ID。在子进程中,会打印出子进程的编号。
这种使用fork函数创建多个子进程的方式常用于并发编程、服务器编程等场景,可以实现多个任务的并行处理。
领取专属 10元无门槛券
手把手带您无忧上云