什么是“broken pipe”错误?

13

在Python中运行代码时,我发现了一个"Broken Pipe Error"。有人可以简单地解释一下这是什么吗?

谢谢。


这意味着你的程序试图写入一个管道(可能连接在两个进程之间,但你也可以在单个进程中使用管道),但没有剩余的进程能够从管道中读取数据,因此你会收到“broken pipe”错误。 - Jonathan Leffler
1个回答

28

管道连接了两个进程。其中一个进程持有读取端的管道,另一个进程持有写入端。

当向管道写入数据时,数据将存储在缓冲区中等待其它进程检索。

如果一个进程正在写入管道,但是另一个进程突然退出或关闭了管道怎么办?或者相反,一个进程正在读取,但是写入进程完成或关闭了管道怎么办?

这种输入/输出错误被称为“broken pipe”(破损的管道)。


1
错误无法“修复”,因为它只是一个症状。它告诉你还有另一个问题。两个进程中的一个在它应该关闭管道之前就关闭了它(可能是通过终止),或者另一个进程的期望是错误的。断开的管道不是错误,而是进程生命周期不匹配。它们没有正确地协同工作。 - salezica
所以,没有解决方法...真是遗憾。 - Zld Productions
谢谢您的帮助,slezica。我原以为这只是我的IDE或其他问题。 - Zld Productions

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接