1. 编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。
时间: 2024-02-27 07:54:17 浏览: 143
下面是实现该功能的 C 语言程序代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
pid_t pid1, pid2; // 定义两个进程 ID
pid1 = fork(); // 创建子进程1
if (pid1 < 0) {
printf("Failed to fork process 1.\n");
return 1;
} else if (pid1 == 0) {
// 子进程1的代码
printf("I am son.\n");
} else {
pid2 = fork(); // 创建子进程2
if (pid2 < 0) {
printf("Failed to fork process 2.\n");
return 1;
} else if (pid2 == 0) {
// 子进程2的代码
printf("I am daughter.\n");
} else {
// 父进程的代码
printf("I am father.\n");
waitpid(pid1, NULL, 0); // 等待子进程1结束
waitpid(pid2, NULL, 0); // 等待子进程2结束
}
}
return 0;
}
```
该程序通过 `fork()` 系统调用创建了两个子进程,并且在父进程、子进程1、子进程2 分别输出了不同的字符串。其中,父进程通过 `waitpid()` 函数等待子进程1和子进程2 的结束。注意,子进程1和子进程2 的代码是相同的,只是输出的字符串不同。
阅读全文