我使用os.mkfifo()命令创建了一个命名管道。我有两个不同的Python进程访问这个命名管道,进程A正在读取,进程B正在写入。进程A使用select函数来确定fifo/pipe中是否有可用数据。尽管进程B在每次写入调用后都会刷新,但进程A的select函数并不总是返回(它继续阻塞,就好像没有新数据一样)。在广泛研究了这个问题之后,我最终只是编程让进程B在我的真实调用之前和之后添加5KB的垃圾写入,同样地,进程A被编程忽略那5KB。现在一切正常,select始终返回适当的结果。我通过注意到如果进程B被杀死(在它写入和刷新之后,它将在读取管道上休眠),进程A的select将返回来找到这个hack-ish的解决方案。Python对命名管道的flush有问题吗?