有名管道(FIFO)不同于匿名管道之处在于它提供了一个路径名与之关联,以 FIFO的文件形式(特殊文件形式)存在于文件系统中,并且其打开方式与打开一个普通文件是一样的,这样即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径就能够彼此通过 FIFO相互通信,因此,通过FIFO不相关的进程也能交换数据。
一旦打开了 FIFO,就能在它上面使用与操作匿名管道和其他文件的系统调用一样的I/O系统调用了 (如read ( ). write()和close())。与管道一样, FIFO也有一个写入端和读取端,并且从管道中读取数据的顺序与写入的顺序是一样的。FIFO 的名称也由此而来:先入先出。
1. FIFO在文件系统中作为一个特殊文件存在,但FIFO中的内容却存放在内存中。
2.当使用FIFO 的进程退出后,FIFO文件将继续保存在文件系统中以便以后使用。
3. FIFO 有名字,不相关的进程可以通过打开有名管道进行通信(无亲属关系也可)。
因涉及一些执行语句,禁止写入,请联系客服获取
因涉及一些执行语句,禁止写入,请联系客服获取
因涉及一些执行语句,禁止写入,请联系客服获取
说明:只有读端和写段都被打开时才能正常通信;在两个终端(两个进程分别运行两个函数);
读管道:
管道中有数据,read返回实际读到的字节数
管道中无数据:
管道写端被全部关闭,read返回0,(相当于读到文件末尾)
写端没有全部被关闭,read阻塞等待
写管道:
管道读端被全部关闭,进行异常终止(收到一个SIGPIPE信号)
管道读端没有全部关闭:
管道已经满了,write会阻塞
管道没有满,write将数据写入,并返回实际写入的字节数。
(1) 进程A:
因涉及一些执行语句,禁止写入,请联系客服获取
(2) 进程B:
因涉及一些执行语句,禁止写入,请联系客服获取
说明:只有读端和写段都被打开时才能正常通信;在两个终端(两个进程分别运行两个函数);
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者