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

  • 管道为空:读阻塞

相关推荐
lzx_00214 分钟前
Linux 进程(三) 从进程状态到僵尸进程、孤儿进程
linux·服务器
FlightYe2 小时前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
刘马想放假3 小时前
CANviz 使用指南|Linux 安装、DBC 解码、实时曲线与 J1939 实战
linux·python·websocket
kloc4 小时前
聊天室项目入口网关子服务的实现
linux·c++
GeW4 小时前
深圳APEC峰会倒计时:数据库与Linux运维的"隐形考场"
linux
梦到啥说啥5 小时前
Linux网络编程:UDP网络协议
linux·网络协议·udp
无足鸟ICT6 小时前
【RHCA+】ipcrm命令(删除IPC资源)
linux
星恒随风7 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Z21-X8 小时前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
陈希12310 小时前
Linux 网络诊断工具实战:ping、curl、tcpdump、mtr、dig 用法详解
linux·网络·tcpdump