编写程序,用系统调用fork()创建两子进程。父进程显示10次字符串“father”,子进程1显示10次字符串“son”,子进程2显示10次字符串“daughter”。观察并记录屏幕上显示结果,分析原因。(提示:在各进程中加入sleep,观察结果分析原因),具体的代码实现
时间: 2024-05-26 20:10:17 浏览: 30
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
int i;
pid_t pid1, pid2;
pid1 = fork();
if (pid1 < 0) {
printf("Failed to create child process.\n");
exit(-1);
} else if (pid1 == 0) {
// Child process 1 - daughter
for (i = 0; i < 10; i++) {
printf("daughter\n");
sleep(1);
}
exit(0);
} else {
// Parent process
pid2 = fork();
if (pid2 < 0) {
printf("Failed to create child process.\n");
exit(-1);
} else if (pid2 == 0) {
// Child process 2 - son
for (i = 0; i < 10; i++) {
printf("son\n");
sleep(1);
}
exit(0);
} else {
// Parent process continues
for (i = 0; i < 10; i++) {
printf("father\n");
sleep(1);
}
wait(NULL);
wait(NULL);
printf("All processes are done.\n");
}
}
return 0;
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)