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 () 收尸防僵尸
相关推荐
小吴伴学者11 分钟前
Linux RX报文处理全流程解析
linux
TANGLONG22211 分钟前
【C++】继承详解——基类/派生类、作用域、默认函数、菱形继承(超详细)
java·c语言·c++·经验分享·笔记·ajax
小侯不躺平.23 分钟前
C++ Boost库【2】 --stringalgo字符串算法
linux·c++·算法
jingleli2129 分钟前
ssh配置内置sftp并使用密钥对登录
运维·ssh
code_whiter33 分钟前
C++11(stack和queue)
开发语言·c++
盘古信息IMS40 分钟前
盘古信息 MES:赋能电子制造精益生产,实现排程、物料、质量一体化精准管控
大数据·运维·制造
夏乌_Wx41 分钟前
计算机网络实践项目 | 云相册(文件互传与管理系统)
linux·计算机网络
用户8055336980342 分钟前
嵌入式Linux驱动开发——设备树语法与编译工具——读懂这张"藏宝图"
linux·嵌入式
用户8055336980343 分钟前
现代Qt开发教程(新手篇)2.1——QPainter 绘图基础
c++·qt