1. 编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。
时间: 2024-02-28 19:54:19 浏览: 140
好的,以下是实现该功能的C语言程序:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid1, pid2;
pid1 = fork(); // 创建子进程1
if (pid1 < 0) { // 创建失败
fprintf(stderr, "fork failed\n");
return 1;
} else if (pid1 == 0) { // 子进程1
printf("I am son\n");
} else { // 父进程
pid2 = fork(); // 创建子进程2
if (pid2 < 0) { // 创建失败
fprintf(stderr, "fork failed\n");
return 1;
} else if (pid2 == 0) { // 子进程2
printf("I am daughter\n");
} else { // 父进程
printf("I am father\n");
}
}
return 0;
}
```
程序中使用了系统调用 `fork()`,在父进程中,通过调用 `fork()` 创建了两个子进程。在子进程1中,输出了 "I am son";在子进程2中,输出了 "I am daughter";在父进程中,输出了 "I am father"。由于父进程和子进程之间的执行是并发的,因此输出的顺序可能是随机的。
阅读全文