编写一段程序,使用系统调用 fork() 创建两个子进程
时间: 2024-10-14 11:08:42 浏览: 25
在Unix/Linux环境中,`fork()` 是一个核心函数,用于创建一个新的进程副本,这个新进程被称为子进程,而原进程称为父进程。下面是一个简单的 C 程序示例,展示了如何使用 `fork()` 函数:
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main() {
pid_t pid; // 子进程ID
// 调用 fork()
if ((pid = fork()) == 0) { // 如果是子进程
printf("I am child process with PID: %d\n", getpid());
// 子进程可以执行特定任务...
} else if (pid > 0) { // 如果是父进程
printf("I am parent process with PID: %d\n", getpid());
// 父进程可以继续执行其他任务...
wait(NULL); // 等待子进程结束
} else {
perror("Fork failed");
return 1;
}
return 0;
}
```
在这个例子中,`fork()` 返回值若等于0,则表示当前进程是子进程;大于0则表示是父进程。每个子进程都会独立运行,它们有自己的地址空间,并且各自执行从 `if (pid == 0)` 开始到相应的 `}` 结束的部分。
阅读全文