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 () 收尸防僵尸
相关推荐
AlfredZhao6 小时前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
卷无止境8 小时前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境9 小时前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴1 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
戴为沐1 天前
Linux内存扩容指南
linux
zylyehuo2 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
卷无止境3 天前
C++ 的Eigen 库全解析
c++