版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、linux 进程间通信 (三 )- 管道通信之有名管道及其基础实验分类:linux 应用编程 2013-06-11 15:44 1780人阅读评论 (4) 收藏举报有名管道 accessmkfifo有名管道 (fifo)首先将上一节的有关有名管道的定义再贴出来有名管道是对无名管道的一种改进,它具有以下特点 :它可以使互不相关的两个进程间实现彼此通信; 该管道可以通过路径名来指出,并且在文件系统中是可见的。在建立了管道之后,两个进程就可以把它当做普通文件一样进行读写操作,使用非常方便; fifo 严格地遵循先进先出规则,对管道及它们的写则是把数据添加到末尾,它们不支持如fifo 的读总是从开始处
2、返回数据,对lseek() 等文件定位操作。有名管道的创建可以使用函数 mkfifo() ,该函数类似与文件中的 open() 操作,可以指定管道的路径和打开的模式。咱们还可以在命令行使用“ mknod 管道名 p”来创建有名管道。在管道创建成功后,就可以使用open() 、 write() 和 read() 这些函数了。与普通文件的开发设置一样, 对于为读而打开的管道可在open() 中设置 o_rdonly ,对于为写而打开的管道可在 open() 中设置 o_wronly ,在这里与普通文件不同的是阻塞问题。由于普通文件在读写时不会出现阻塞问题,而在管道的读写中却有阻塞的可能,这里的非阻
3、塞标志可以在open() 函数中设定为o_nonblock。下面分别对阻塞打开和非阻塞打开的读写进行讨论。对于读进程:若该管道是阻塞打开,且当前 fifo 内没有数据, 则对读进程而言将一直阻塞到有数据写入。若该管道是非阻塞打开,则不论 fifo 内是否有数据, 读进程都会立即执行读操作。即如果 fifo 内没有数据,则读函数将立刻返回0 。对于写进程:若该管道是阻塞打开,则写操作将一直阻塞到数据可以被写入。若该管道是非阻塞打开而不能写入全部数据,则读操作进行部分写入或者调用失败。下表列出了mkfifo() 函数的语法要点为了方便咱们查错,再对fifo 相关的出错信息进行归纳,如下表:下面的实
4、验中还要用到access() 函数,它的说明如下表:access() 函数的功能是确定文件或文件夹的访问权限,即检查某个文件的存取方式,比如说是只读方式、只写方式等,如果指定的存取方式有效,则函数返回0, 否则函数返回 -1 。基础实验本实验包括两个程序:fifo_read.c点此下载 和 fifo_write.c点此下载。一个用于读管道,另一个用于写管道。其中在读管道的程序中创建管道,并且作为户输入要写入的内容;读管道的程序会读出用户写入到管道的内容。塞式读写管道模式。main() 函数里的参数由用这两个程序采用的是阻写管道的程序如下:读管道程序如下编写保存上述两个文件后分别使用命令:gcc fifo_write.c -o fifo_write和命令:gccfifo_read.c -o fifo_read编译。为了能更好的观察运行效果,需要把这两个程序分别在终端里运行, 在这里首先启动读管道程序。读管道进程在建立管道后就开始循环地从管道里读出内容
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年福建省福州教育学院附属中学初三第二次统一考试物理试题含解析
- 江苏省部分市区2025-2026学年初三下5月初检测试题物理试题含解析
- 2026年大学大一(交通运输)航空运输管理基础阶段测试题及答案
- 护理安全:护理人员的心理健康与安全文化
- 护理不良事件的预防措施
- 2025年前台防疫接待礼仪重点内容
- 2025年前台电子模拟题
- 护理健康教育中的健康教育综合管理
- 护理考编考试目标华图课件设定
- 患者疼痛管理策略
- 2026年度烟花爆竹单位安全教育培训计划培训记录(12个月带内容模板)
- (2025)加拿大麻醉医师学会:麻醉实践指南(2025修订版)解读
- 2026年铜川职业技术学院单招职业倾向性考试题库必考题
- 社区院感培训课件
- 电力交易员(中级工)职业鉴定理论考试题库300题答案
- 2025年东南大学电气夏令营笔试及答案
- 实验室6S培训课件
- 陕西省部分学校2025-2026学年高三上学期9月联考化学试题(解析版)
- 贵州茅台酒厂集团招聘面试题及答案
- TCASTEM1007-2022技术经理人能力评价规范
- 2025年河南工业和信息化职业学院单招职业技能测试题库附参考答案
评论
0/150
提交评论