在Linux系统中,如何利用`fork()`和`exec()`系统调用来创建子进程并执行特定程序?请提供示例代码。
时间: 2024-10-26 09:15:41 浏览: 6
参考资源链接:[广州大学操作系统实验:进程管理与通信实战](https://wenku.csdn.net/doc/3kti604sqc?utm_source=wenku_answer2doc_content)
在Linux系统中,创建子进程是一个常见的需求,通常使用`fork()`系统调用来实现。创建子进程后,可以使用`exec()`系列函数在子进程中执行新的程序,替换子进程的地址空间。为了帮助你更好地掌握这一过程,建议参考以下的资源:《广州大学操作系统实验:进程管理与通信实战》。这篇实验报告详细介绍了在操作系统实验课程中如何实现这些功能,并提供了实验的具体步骤。
`fork()`系统调用在父进程中复制当前进程,返回两次——在父进程中返回新创建的子进程的PID,在子进程中返回0。以下是一个使用`fork()`创建子进程的简单示例代码:
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main() {
pid_t pid = fork();
if (pid == -1) {
// fork失败
perror(
参考资源链接:[广州大学操作系统实验:进程管理与通信实战](https://wenku.csdn.net/doc/3kti604sqc?utm_source=wenku_answer2doc_content)
阅读全文