Python永远打开fifo块

Ole*_*yan 2 python named-pipes

我正在尝试使用Python中的命名管道来实现IPC,但是存在问题。open阻碍进程

import os
path = '/tmp/fifo'
os.mkfifo(path)
fifo = open(path, 'w') # never returns
Run Code Online (Sandbox Code Playgroud)

与...相同 open(path, 'r')

我究竟做错了什么?

的Python 3.6.1

Ole*_*yan 5

想通了。open阻塞直到管道在另一侧打开


小智 -1

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

\n\n

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

\n\n

通常,FIFO用作\xe2\x80\x9cclient\xe2\x80\x9d和\xe2\x80\x9cserver\xe2\x80\x9d类型进程之间的集合点:服务器打开FIFO进行读取,客户端打开它进行读取写作。请注意, mkfifo() 不会打开 FIFO \xe2\x80\x94 它只是创建集合点

\n