编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。
时间: 2024-02-27 08:53:59 浏览: 35
好的,以下是实现该功能的 C 语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
pid_t pid1, pid2;
// 创建第一个子进程
pid1 = fork();
if (pid1 < 0) { // 创建失败
printf("Fork failed.\n");
exit(1);
} else if (pid1 == 0) { // 子进程1
printf("I am son.\n");
exit(0);
} else { // 父进程
// 创建第二个子进程
pid2 = fork();
if (pid2 < 0) { // 创建失败
printf("Fork failed.\n");
exit(1);
} else if (pid2 == 0) { // 子进程2
printf("I am daughter.\n");
exit(0);
} else { // 父进程
printf("I am father.\n");
exit(0);
}
}
return 0;
}
```
代码中使用了 `fork()` 系统调用来创建子进程,根据返回值的不同进行判断,然后在父进程、子进程1、子进程2 中分别输出对应的字符串。注意在子进程中使用 `exit(0)` 来结束进程,避免出现多个进程同时执行的情况。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)