命名管道在Python中不会刷新

我有一个通过os.mkfifo()命令创建的命名管道.我有两个不同的
Python进程访问这个命名管道,进程A正在读取,进程B正在编写.进程A使用select函数确定何时fifo / pipe中有可用数据.尽管进程B在每次写入调用之后都会刷新,但进程A的select函数并不总是返回(它会像没有新数据一样保持阻塞).在广泛研究了这个问题之后,我最后编写了进程B,在我的真实调用之前和之后添加了5KB的垃圾写入,同样,进程A被编程为忽略那些5KB.现在一切正常,选择总是适当地返回.我注意到,如果进程B被杀死(在写入和刷新之后,它将在读取管道上休眠),进程A的选择将返回,我来到了这个hack-ish解决方案. Python中的命名管道是否存在刷新问题? 最佳答案 你使用什么API? os.read()和os.write()不缓冲任何东西.

点赞