fork()
是 Linux 系统中的一个系统调用,用于创建一个新的进程。这个新的进程几乎是原进程的副本,它继承了原进程的大部分属性,如代码、数据、堆栈、文件描述符等。fork()
的返回值在父进程和子进程中是不同的:在父进程中返回子进程的进程ID,在子进程中返回0。
fork()
可以轻松实现多进程并发执行,提高程序的执行效率。fork()
的进程。fork()
创建的新进程。以下是一个简单的示例,展示了如何使用 fork()
创建一个新的进程:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
pid_t pid;
// 创建子进程
pid = fork();
if (pid < 0) {
// fork 失败
perror("fork");
exit(EXIT_FAILURE);
} else if (pid == 0) {
// 子进程
printf("I am the child process, PID: %d\n", getpid());
} else {
// 父进程
printf("I am the parent process, PID: %d, Child PID: %d\n", getpid(), pid);
}
return 0;
}
wait()
或 waitpid()
等待子进程结束并回收资源。wait()
或 waitpid()
等待子进程结束并回收资源。通过以上方法,可以有效管理和优化使用 fork()
创建进程的过程,确保程序的稳定性和效率。
领取专属 10元无门槛券
手把手带您无忧上云