进程间的通信-有名管道和无名管道
目录一、无名管道Unnamed Pipe / pipe半双工1. 概念2. 创建方式参数说明本质3. 使用流程重点4. 读写规则4.1 读端行为4.2 写端行为5. 管道关闭规则非常重要5.1 关闭写端5.2 关闭读端进程通信本质关系二、有名管道Named Pipe / FIFO半双工1. 概念2. 创建方式方法1命令创建方法2系统调用打开方式3. 读写规则和 pipe 类似5.1 读端5.2 写端三、有名管道和无名管道特点对比一、无名管道Unnamed Pipe / pipe半双工1. 概念无名管道是一种内核提供的临时通信缓冲区队列用于有亲缘关系的进程通信父子进程。特点只能用于有关系的进程父子/兄弟没有文件名生命周期随进程结束而消失2. 创建方式int pipe(int pipefd[2]);参数说明pipefd[0]读端read endpipefd[1]本质内核创建一个环形队列/缓冲区写端 → [ 内核缓冲区队列 ] → 读端3. 使用流程重点先 pipe再 fork原因fork 后子进程会继承父进程的 fd从而共享同一个管道缓冲区4. 读写规则4.1 读端行为情况1管道无数据read() → 阻塞进入等待态情况2管道有数据read() → 立即返回,返回值 实际读取字节数4.2 写端行为情况1正常写write() → 写入缓冲区情况2读端关闭write() → 触发 SIGPIPE 信号进程默认退出崩溃5. 管道关闭规则非常重要5.1 关闭写端如果写端全部关闭读端仍在读那么read() → 返回 0含义 表示“文件结束 EOF”5.2 关闭读端如果读端关闭写端还在写那么write() → 进程被 SIGPIPE 杀死进程通信本质关系pipe 是单向通信写进程 → 管道 → 读进程如果需要双向通信必须用两个 pipe二、有名管道Named Pipe / FIFO半双工1. 概念有名管道是有文件名的管道本质仍然是内核缓冲区队列但通过文件路径访问2. 创建方式方法1命令创建open()read/write()mkfifo /示例 mkfifo(myfifo, 0664);方法2系统调用#include sys/types.h #include sys/stat.h int mkfifo(const char *pathname, mode_t mode); //示例 mkfifo(myfifo, 0664);打开方式open(myfifo, O_RDONLY);open(myfifo, O_WRONLY);3. 读写规则和 pipe 类似5.1 读端没数据 → 阻塞有数据 → 返回5.2 写端无读者 → 阻塞或失败取决于模式有读者 → 正常写入三、有名管道和无名管道特点对比项目无名管道有名管道是否有名字没有有文件名使用范围父子进程任意进程生命周期随进程文件存在即存在通信方式内存队列文件路径访问创建方式pipe()mkfifo()

相关新闻

Python 设置 Excel 单元格数字格式

Python 设置 Excel 单元格数字格式

在自动化报表生成与数据处理场景中,数值的展示方式直接影响文档的可读性与专业性。千分位分隔、货币符号、百分比显示、日期格式化等效果,均通过 Excel 的数字格式机制实现。本文将介绍如何通过 Python 代码精确控制 Excel 单元格的数字显示格式&#xf…

2026/6/29 21:32:22阅读更多 →
Whois域名查询API集成指南:从零搭建域名信息查询工具

Whois域名查询API集成指南:从零搭建域名信息查询工具

1. 引言 在互联网生态中,域名是企业的数字门牌。无论是安全研究、品牌监控还是SEO分析,快速获取域名的注册信息、到期时间、DNS记录等数据都至关重要。Whois查询正是实现这一目标的核心手段。然而,传统命令行或在线查询工具效率低下、难以批量…

2026/6/29 21:32:22阅读更多 →
2.2 微内核架构:将财务系统解耦为三层

2.2 微内核架构:将财务系统解耦为三层

1987年,计算机科学家安德鲁坦纳鲍姆在阿姆斯特丹自由大学的办公室里,发布了一个注定要改变操作系统历史的系统——Minix。 Minix的设计哲学用一句话概括:内核只做最少的、最必要的事,剩下的全部丢到用户态。 文件系统驱动、内存管…

2026/6/29 21:32:22阅读更多 →
免费解锁9大网盘下载新姿势:LinkSwift直链下载助手完全指南

免费解锁9大网盘下载新姿势:LinkSwift直链下载助手完全指南

免费解锁9大网盘下载新姿势:LinkSwift直链下载助手完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 /…

2026/6/29 22:57:53阅读更多 →
终极免费网盘直链下载解决方案:一键获取九大平台高速下载链接的完整指南

终极免费网盘直链下载解决方案:一键获取九大平台高速下载链接的完整指南

终极免费网盘直链下载解决方案:一键获取九大平台高速下载链接的完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中…

2026/6/29 22:57:53阅读更多 →
AUTOSAR技术全景导航:从核心栈到实战进阶

AUTOSAR技术全景导航:从核心栈到实战进阶

1. AUTOSAR技术全景导航:从入门到精通的路线图 第一次接触AUTOSAR时,我被它庞大的技术体系震撼到了。记得当时面对MCAL、BSW、RTE这些缩写词,就像在看天书一样。经过多年实战,我发现AUTOSAR其实就像搭积木,只要掌握正…

2026/6/29 22:57:53阅读更多 →
高速接口静电防护:ESD器件选型与电容考量实战

高速接口静电防护:ESD器件选型与电容考量实战

1. 高速接口静电防护的核心挑战 现代电子设备中的USB3.0、HDMI、Type-C等高速接口,传输速率动辄达到10Gbps甚至更高。在这种场景下做静电防护,就像在高速公路上设置减速带——既要起到保护作用,又不能影响车辆的正常通行速度。我参与过多个高…

2026/6/29 22:57:53阅读更多 →
小程序制作平台有哪些?模板工具、SaaS平台和行业系统怎么区分

小程序制作平台有哪些?模板工具、SaaS平台和行业系统怎么区分

很多企业准备做小程序时,最先问的是“小程序制作平台有哪些”,但真正影响后续效果的,往往不是平台名单,而是上线周期、审核材料、后台维护和后续运营是否匹配。“有哪些”不是为了罗列工具,而是为了把模板工具、SaaS平…

2026/6/29 22:57:53阅读更多 →
Splunk Enterprise高危漏洞CVE-2024-36991深度剖析与复现指南

Splunk Enterprise高危漏洞CVE-2024-36991深度剖析与复现指南

1. 项目概述:一次对Splunk Enterprise高危漏洞的深度剖析最近在安全圈里,Splunk Enterprise爆出的这个任意文件读取漏洞(CVE-2024-36991)讨论度挺高。作为一款广泛使用的企业级数据分析和监控平台,Splunk一旦出现这种基…

2026/6/29 22:52:52阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/29 3:27:55阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/29 2:19:08阅读更多 →
如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南

如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南

如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南 【免费下载链接】DeepBump Normal & height maps generation from single pictures 项目地址: https://gitcode.com/gh_mirrors/de/DeepBump 还在为3D建模中的纹理制作而烦恼吗?…

2026/6/29 0:01:47阅读更多 →
OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单!

OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单!

OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单! 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore(OCAT) 项目地址: https://gitcode.com/gh_mirrors/oc/OCA…

2026/6/29 0:01:47阅读更多 →
终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像

终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像

终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否厌倦了Windows 11系统自带的20…

2026/6/29 0:01:47阅读更多 →