fork创建子进程的过程 代码
时间: 2024-09-28 22:08:34 浏览: 36
在C语言中,`fork()`函数用于创建一个子进程。下面是一个简单的例子,展示了基本的`fork()`过程:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid; // 存储fork结果的变量
// 调用fork()
pid = fork();
if (pid == 0) { // 子进程
printf("I am the child process, my PID is %d\n", getpid());
// 这里是子进程特有的执行内容
} else if (pid > 0) { // 父进程
printf("I am the parent process, my PID is %d and my child's PID is %d\n", getpid(), pid);
// 父进程可能会执行其他操作,如等待子进程完成
} else { // fork失败
perror("Fork failed");
return 1;
}
return 0;
}
```
在这个例子中,`fork()`的返回值被用于判断当前是父进程还是子进程:
- 如果`pid`等于0,那么这是子进程,程序会打印出自己的进程ID。
- 如果`pid`大于0,这是父进程,它会打印出自己的进程ID以及新创建的子进程的PID。
注意,子进程实际上是从`fork()`函数返回后立即开始执行的,尽管在代码中看起来像是紧接着父进程的部分。
阅读全文