python FIFO命名管道

本文深入探讨了FIFO(First In First Out)的工作原理及其作为命名管道在进程间通信中的应用。详细介绍了如何通过Python实现FIFO的读写操作,包括简单的单次读写示例和连续读写的增强应用。此外,还对比了FIFO与其他通信方式的优点和局限性。
摘要由CSDN通过智能技术生成

fifo(first in first out) 也称named pipe(命名管道),单向数据流(半双工管道)

本质:
1.硬盘建立一个文件,对文件进行读写,实际数据没有流入硬盘
优点:
1.可以非血缘关系进程进行读写操作
2.多语言通信
缺点:
1.只能一端读令一端写(所以要相互通信需要建立两个fifo)

1.简单应用一次读写

fifo1.py

import os,sys
os.mkfifo('file1')  # os.mknod win操作系统
f1=open('file','w')
f1.write(sys.stdin.readline())
f1.flush()

fifo2.py

import sys
f=open('file1','r')
print(f.readline())
sys.stdout.flush()

在bash1中启动fifo1:

python fifo1.py

在bash2中启动fifo2:

python fifo2.py

在bash1中输入hello
在bash2中会受到hello

2.增强应用连续读写

import os 
import sys

os.mkfifo("file")
f1 = open('file','w')
while True:
    f1.write(sys.stdin.readline())
    f1.flush()
import sys
f=open('file','r')
while True:
    print(f.readline())
    sys.stdout.flush()

参考:
https://www.cnblogs.com/nufangrensheng/p/3561632.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值