Linux -- 管道

进程间通信 IPC

Linux 主流 IPC:

管道、信号量、共享内存、消息队列、套接字

管道(Pipe)

1. 管道通用特点

  • 半双工(单向):数据只能一个方向流动

  • 面向字节流

  • 内置同步互斥机制

  • 命令行 | 就是无名管道

2. 无名管道(pipe)

  • 创建:int pipe(int fd[2])

  • 特点

    1. 没有名字,只能通过文件描述符使用

    2. 只能用于亲缘进程(父子 / 兄弟)

    3. 随进程销毁而消失

    4. fd 0 读端,fd 1 写端

3. 有名管道(FIFO)

  • 创建命令:mkfifo 管道名

  • 特点(必背)

    1. 有文件名,存在于文件系统

    2. 可用于任意进程(无亲缘关系也可)

    3. 关闭进程后,管道文件依然存在

  • 使用:open → read/write → close

管道读写规则

  • 读端不存在:写端收到 SIGPIPE 信号,默认终止进程

  • 读端有缓存:写满则阻塞

  • 写端不存在:读端读完返回 0

  • 管道为空:读阻塞

相关推荐
Android系统攻城狮29 分钟前
Linux PipeWire深度解析之pw_factory_create_object调用流程与实战(七十二)
linux·音频进阶·pipewire音频进阶
lsh曙光34 分钟前
playbook剧本(2)--Ansible变量
linux·运维·网络
START_GAME36 分钟前
MSSQL$SQL2016
java·服务器·前端
lengjingzju1 小时前
编译与调试完全指南—第14章 系统配置与调优
linux
ly76891 小时前
Docker 从入门到实践:镜像、容器、Dockerfile 与 Docker Compose 详解
运维·docker·容器
大鹏的NLP博客2 小时前
通用 Linux 嵌入式板端 C/C++ ABI 与 Glibc 依赖治理规范
linux·c++·交叉编译
用户3169353811832 小时前
ry.bat和ry.sh部署
运维
mennekes2 小时前
自动化产线临时配电:明装工业插座 vs 面板式工业插座 vs 模块化插座箱取舍
运维·科技·安全·制造
tedcloud1232 小时前
book-to-skill 怎么部署?把技术书和项目文档变成 AI Agent 可复用知识
linux·运维·服务器·人工智能·开源
旗开得胜马到成功2 小时前
SK海力士SSD售后翻车:企业备份介质裸奔风险与中科热备技术选型拆解
运维·服务器·网络