#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
#include <vector>
using namespace std;
int main() {
int pid = 0;
int subProcessNum;
std::vector<pid_t> pidList;
for (subProcessNum = 0; subProcessNum < 3; subProcessNum++) {
pid = fork();
if (pid == 0 || pid == -1) {
break;
} else {
pidList.push_back(pid);
}
}
int wait_pid = 0;
if (pid == -1) {
return -1;
} else if (pid == 0) {
printf("sub process cnt:%d\n", subProcessNum);
sleep(1);
exit(subProcessNum);
} else {
int status = 0;
for (auto &pid : pidList) {
if ((waitpid(pid, &status, 0) == -1) || WEXITSTATUS(status) != 0) {
wait_pid = WEXITSTATUS(status);
}
printf("process pid:%d, exit status:%d\n", pid, WEXITSTATUS(status));
}
printf("mian process exit status:%d\n", wait_pid);
return wait_pid;
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· DeepSeek V3 两周使用总结
· 回顾我的软件开发经历(1)
· C#使用yield关键字提升迭代性能与效率
· 低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解
· 4. 使用sql查询excel内容