C语言使用fork()创建两个子进程并输出字符 - 详解与代码示例
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid1, pid2;
pid1 = fork();
if (pid1 < 0) {
printf("fork error\n");
return -1;
} else if (pid1 == 0) {
// 子进程1
printf('b\n');
} else {
pid2 = fork();
if (pid2 < 0) {
printf("fork error\n");
return -1;
} else if (pid2 == 0) {
// 子进程2
printf('c\n');
} else {
// 父进程
printf('a\n');
}
}
return 0;
}
运行结果:
a
b
c
解析:
当程序运行时,先创建了一个子进程1,此时父进程和子进程1同时在运行。子进程1输出字符'b'。接着,父进程创建了另一个子进程2,此时父进程、子进程1和子进程2同时在运行。子进程2输出字符'c'。最后,父进程输出字符'a'。
由于进程是并发执行的,所以输出的顺序可能不同。但是,无论输出顺序如何,每个进程都只输出了一个字符,符合题目要求。
原文地址: https://www.cveoy.top/t/topic/nEP1 著作权归作者所有。请勿转载和采集!