C语言使用fork()创建进程
时间: 2024-09-25 11:06:06 浏览: 69
Linux中使用C语言的fork()函数创建子进程的实例教程
在C语言中,`fork()`函数是一个核心的库函数,用于创建一个新的进程。当一个进程调用`fork()`时,它会创建一个完全相同的副本,称为子进程。以下是`fork()`的基本用法:
```c
#include <unistd.h>
pid_t fork(void);
```
`fork()`函数返回两个值之一:
1. 如果是父进程,返回的是新子进程的进程标识符(PID),对于子进程来说,它的返回值将是0(因为子进程不知道它是复制的)。
2. 如果是子进程,返回的就是其自身的PID。
下面是一个简单的例子:
```c
#include <stdio.h>
#include <sys/types.h>
int main() {
pid_t pid = fork(); // 创建子进程
if (pid == 0) { // 子进程
printf("I'm the child process with PID: %d\n", getpid());
// ... 进行特定操作
} else if (pid > 0) { // 父进程
printf("I'm the parent process with PID: %d, my child's PID is: %d\n", getpid(), pid);
// ... 等待子进程结束
wait(NULL); // 或者waitpid(pid, NULL, 0)
} else { // fork失败
perror("Fork failed");
return 1;
}
return 0;
}
```
在这个示例中,父进程会创建一个子进程,并打印各自的信息。子进程会在独立上下文中运行,直到程序退出。
阅读全文