Python永远打开fifo块

时间:2017-10-03 04:55:00

标签: python named-pipes

我试图在Python中使用命名管道实现IPC,但是存在问题。 open阻止了该过程

import os
path = '/tmp/fifo'
os.mkfifo(path)
fifo = open(path, 'w') # never returns

open(path, 'r')

相同

我做错了什么?

Python 3.6.1

3 个答案:

答案 0 :(得分:3)

想出来了。 {{1}}阻塞,直到管道在另一侧打开

答案 1 :(得分:1)

根据os.mkfifo,您需要使用 ~/

答案 2 :(得分:0)

函数os.mkfifo(path)需要创建路径(如果所有文件夹都不存在,则构建所有路径)。

因此,您需要添加如下文件名:fifo = open(path + file, 'r')

通常,FIFO用作“客户端”和“服务器”类型进程之间的会合:服务器打开FIFO进行读取,客户端打开它进行写入。 请注意,mkfifo()不会打开FIFO - 它只会创建会合点