恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Linux之进程间通信(三)--命名管道

  • 首页
  • 资讯中心
  • /
  • Linux之进程间通信(三)--命名管道

相关资讯

T-RTK UM982高精度定位模块参数配置与优化实战指南 2026/8/7 5:07:56
三月七小助手:星穹铁道自动化终极解决方案与实战手册 2026/8/7 5:02:55
嵌入式TFT-LCD图形绘制:从像素点到直线、矩形与圆的底层实现 2026/8/7 5:02:55

最新资讯

Git提交历史查看与导出实战:从基础命令到自动化脚本
深度解析顽固软件卸载:从原理到实战,彻底清除联软助手
FPGA时序收敛实战:XDC约束语法、管理与优化策略详解
Apple Silicon Mac运行x86虚拟机:原理、方案与实战指南
VMware虚拟机Linux磁盘挂载全攻略:从分区到持久化配置
Wireshark解码H.264视频流:从网络抓包到画面可视化的完整指南

今日推荐

CAD图库管理:从文件归档到设计资产管理的效率革命
5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南
“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Linux之进程间通信(三)--命名管道

发布时间:2026/8/7 5:07:56
Linux之进程间通信(三)--命名管道 命名管道之前说到有血缘关系的进程可以实现管道通信但是要是没有血缘关系的进程也可以进行管道通信的---这种管道就是命名管道如果再来一个进程和当前进程一样打开同一个文件,文件的核心数据结构和缓冲区只会存在一份那么怎么确定两个进程打开的文件是同一个文件???只要访问同一个路径下的同一个文件,文件名路径唯一inode但是和之前的磁盘文件不同的是内核缓冲区不会刷新到磁盘系统mkfifomkfifo namedpipe它拥有自己独立的inode,并且p-说明其为管道文件但是他并不需要任何的磁盘空间我们可以试一下往这个文件里面写入,再由另外一个进程进行读取代码.hpp是 C 的头文件全称 header‑plus‑plus。 简单理解就是把 .h 头文件 .cpp 实现写在同一个文件里面。什么时候必须用 hpp???C 模板 templatetemplate 类、template 函数必须写在头文件模板代码编译阶段实例化编译器需要看到完整源代码不能分离到 cpp。 这种场景最适合.hpp。创建文件如果我们再次运行我们就发现报错,因为这个文件已经存在,inode是唯一的删除文件我们除了可以用rm也可以用unlink,他就是解除了文件和inode之间的映射系统调用再main函数里面创建后再删除当然我们想要更加完善一点文件创建前就检查文件是否存在,不存在则创建,存在就不创建,然后在进程结束时将管道文件删除再创建管道的成员函数时,添加判断管道文件是否存在判断管道是否存在的核心逻辑,用stat参数说明pathname文件路径字符串可以普通文件、目录、命名管道 (FIFO)、设备文件。statbuf传出参数传入struct stat结构体指针内核会把文件全部属性填充到这个内存。restrictC 语言指针限定修饰符告诉编译器两个指针不会指向同一块内存用于编译器优化写代码时可以直接忽略这个关键字。返回值成功返回0文件信息存入statbuf失败返回‑1设置 errno文件不存在、权限不足等打开文件这里打开文件和之前文件的操作类似,也是用open函数来进行实现定义打开方式时写还是读打开打开了文件,然后要接受信息和发送信息server进行信息接收client进行发送信息注意再通信没有开始之前,如果读端打开但是写端没有打开,读端的open就会阻塞,直到write打开为什么呢??命名管道FIFO默认是阻塞模式。 管道本质是内核中的一块缓冲区设计语义管道必须同时存在读端、写端open 调用才返回。服务端open(fifo,O_RDONLY)只读打开 此时内核发现只有读文件描述符没有任何写端打开这个管道。open()直接挂起阻塞让出 CPU休眠不返回。直到客户端执行open(fifo,O_WRONLY)只写打开。 内核看到现在管道同时具备读端 写端。 此时两边的open()全部唤醒函数返回程序继续往下跑。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号