编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有 一个父进程和两个子进程活动。让每一-个进程在屏幕上显示- 一个字符:父进程显示“a”;子 讲程分别显示字符h“和字符“”。
时间: 2024-04-30 16:22:28 浏览: 107
下面是一份可能的实现代码:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid1, pid2;
pid1 = fork();
if (pid1 == -1) {
printf("Failed to create child process 1\n");
return 1;
} else if (pid1 == 0) {
// Child process 1
printf("h");
} else {
// Parent process
pid2 = fork();
if (pid2 == -1) {
printf("Failed to create child process 2\n");
return 1;
} else if (pid2 == 0) {
// Child process 2
printf("i");
} else {
// Parent process
printf("a");
}
}
return 0;
}
```
这个程序使用了两次fork()系统调用来创建两个子进程,并且在每个进程中使用printf()函数输出一个字符。在父进程中,首先使用第一个fork()创建了一个子进程pid1,然后在pid1不为0时继续使用第二个fork()创建了另一个子进程pid2。最后,父进程输出字符“a”,子进程1输出字符“h”,子进程2输出字符“i”。
阅读全文