编写一段程序,使用系统调用fork()函数创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符;父进程显示字符“a”,子进程分别显示字符“b”和“ c”。
时间: 2024-02-21 07:01:04 浏览: 58
好的,以下是答案:
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid1, pid2;
pid1 = fork();
if (pid1 < 0) {
printf("Fork Failed");
return 1;
} else if (pid1 == 0) {
// 子进程1
printf("b\n");
} else {
pid2 = fork();
if (pid2 < 0) {
printf("Fork Failed");
return 1;
} else if (pid2 == 0) {
// 子进程2
printf("c\n");
} else {
// 父进程
printf("a\n");
wait(NULL);
wait(NULL);
}
}
return 0;
}
```
在此程序中,我们使用 `fork()` 函数创建了两个子进程,然后在每个子进程中分别打印出字符 `b` 和 `c`,在父进程中打印出字符 `a`。然后我们使用 `wait()` 函数等待所有的子进程结束。
需要注意的是,调用 `fork()` 函数后,父进程和子进程的代码是完全相同的,所以我们需要使用 `if (pid1 == 0)` 和 `if (pid2 == 0)` 来区分父进程和子进程的代码。
阅读全文