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