怎麽使用系统调用fork()创建两个子进程。
时间: 2024-10-09 19:09:13 浏览: 47
在大多数Unix-like操作系统中,包括Linux,你可以使用`fork()`函数来创建一个新的进程。这个系统调用会复制当前进程的所有状态,包括内存映射、打开文件描述符等,并返回两个进程ID(PID):一个是父进程的新PID,另一个是子进程的PID。
以下是一个简单的C语言示例,展示了如何使用`fork()`创建子进程:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid; // 存储fork结果
// 调用 fork()
pid = fork();
if (pid == 0) { // 如果是子进程(非零)
printf("我是子进程,我的PID是:%d\n", getpid()); // 输出子进程PID
// 子进程执行的任务...
} else if (pid > 0) { // 如果是父进程(零)
printf("我是父进程,我的PID是:%d, 我刚刚创建了一个子进程,其PID是:%d\n", getpid(), pid); // 输出父进程PID及子进程PID
// 父进程继续执行任务...
} else { // fork失败的情况
perror("Fork failed");
return -1;
}
exit(0); // 结束进程
}
```
在这个例子中,如果`fork()`成功,那么程序将进入if-else条件判断,父进程和子进程各自执行相应的部分。每个新进程都会独立运行,有自己的地址空间。
阅读全文