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 () 收尸防僵尸
相关推荐
Android系统攻城狮2 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根2 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
U-Mail邮件系统3 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
xier_ran4 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
倒头就睡的小比特4 小时前
Linux基础指令3
linux·服务器
天远数科4 小时前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化
梦帮科技4 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
jimy15 小时前
c++的 Type Traits (一)
开发语言·c++
半杯咖啡半行码5 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
别动我齐刘海6 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人