编写一段程序,用系统调用forkx创建两个子进程
时间: 2024-10-25 09:07:50 浏览: 33
在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) { // 当返回值为0,表示这是子进程
printf("This is child process %d.\n", getpid()); // 输出子进程ID
// 这里可以编写子进程的具体任务
exit(0); // 结束子进程
} else if (pid > 0) { // 如果是父进程
printf("Parent process ID is %d.\n", getpid());
// 父进程等待子进程结束,并打印其PID
wait(NULL);
printf("Child process %d terminated.\n", pid);
} else {
perror("Fork failed"); // 错误处理,fork失败时输出错误信息
return -1;
}
return 0;
}
```
在这个例子中,`fork()`会返回0给子进程,非零值给父进程。如果`fork()`成功,每个孩子都会开始执行从那里开始的代码块,直到遇到`exit()`。父进程则继续执行,并通过`wait()`等待子进程结束。
阅读全文