使用fork()系统调用创建两个子进程,子进程1输出child1 Working...,子进程2输出child2 Working...的代码
时间: 2023-06-10 10:03:46 浏览: 44
好的,以下是使用fork()系统调用创建两个子进程,并输出不同信息的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
pid_t pid1, pid2;
// fork第一次创建子进程
pid1 = fork();
if (pid1 < 0) {
perror("fork error");
exit(EXIT_FAILURE);
} else if (pid1 == 0) {
// 子进程1
printf("child1 Working...\n");
exit(EXIT_SUCCESS);
} else {
// 父进程继续创建第二个子进程
pid2 = fork();
if (pid2 < 0) {
perror("fork error");
exit(EXIT_FAILURE);
} else if (pid2 == 0) {
// 子进程2
printf("child2 Working...\n");
exit(EXIT_SUCCESS);
} else {
// 父进程
// 等待所有子进程运行完成
while (wait(NULL) > 0);
printf("All child processes finished.\n");
}
}
return 0;
}
```
当程序运行时,先创建一个子进程,然后在该子进程中输出"child1 Working...",接着在父进程中再创建一个子进程,该子进程中输出"child2 Working...",最后父进程等待两个子进程运行完成后,输出"All child processes finished."。
注意:以上代码仅供参考,实际使用时可能需要对错误进行处理、调用不同的函数等。
相关推荐
![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)
![](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)
![](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)