Linux/C++多进程

给你最简洁、能直接用、新手一看就懂的 Linux C++ 多进程核心内容,不废话。


1. 核心 API(就这 3 个最常用)

  1. fork():创建子进程
  2. getpid():获取当前进程 ID
  3. wait() / waitpid():等待子进程结束,防止僵尸进程

2. 极简可运行代码

cpp

运行

复制代码
#include <iostream>
#include <unistd.h>   // fork, getpid
#include <sys/wait.h> // wait
using namespace std;

int main() {
    // 创建子进程
    pid_t pid = fork();

    if (pid < 0) {
        cout << "创建失败" << endl;
        return -1;
    }

    // 子进程
    if (pid == 0) {
        cout << "我是子进程 PID: " << getpid() << endl;
        return 0;
    }
    // 父进程
    else {
        cout << "我是父进程 PID: " << getpid() << endl;
        wait(NULL); // 等子进程结束
        cout << "子进程已退出" << endl;
    }
    return 0;
}

编译运行

bash

运行

复制代码
g++ test.cpp -o test
./test

3. 最关键知识点

  • fork 调用一次,返回两次
    • 返回 0 → 子进程
    • 返回 >0 → 父进程
  • 父子进程内存独立,互不干扰
  • 父进程必须 wait 子进程,否则会产生僵尸进程
  • 多进程适合:CPU 密集任务、独立子任务、稳定性要求高的场景

4. 3 句话总结

  1. fork () 造子进程
  2. 按返回值区分父子
  3. wait () 收尸防僵尸
相关推荐
最贪吃的虎2 小时前
GitHub推送又超时了?试试SSH
运维·ssh·github
stolentime2 小时前
通信题:洛谷P15942 [JOI Final 2026] 赌场 / Casino题解
c++·算法·洛谷·joi·通信题
XZHOUMIN2 小时前
【生成pdf格式的报告】
c++·pdf·mfc
XZY0282 小时前
如何使用grpc
运维·服务器
rleS IONS2 小时前
SQL2000在win10上安装的方法
运维·服务器
elseif1232 小时前
浅谈 C++ 学习
开发语言·c++·学习
Stack Overflow?Tan902 小时前
linux ubuntu22.04安装ROS2humble完整版的流程
linux·docker·ros2
zly35002 小时前
centos7 sshd无法启动
linux·运维·服务器
沛沛rh452 小时前
深入并发编程:从 C++ 到 Rust 的学习笔记
c++·笔记·学习·算法·rust