2014-06-08 69 views
1

在Python中運行代碼,我發現了一個「Broken Pipe Error」。有人請向我解釋這是什麼只需什麼是管道故障錯誤?

謝謝。

+0

這意味着你的程序試圖寫入一個管道(假定連接在兩個進程之間,但是你可以在一個進程中有一個管道),但是沒有一個進程可以從管道讀取,所以你得到了'破管'的錯誤。 –

回答

8

一個管道連接兩個進程。其中一個進程保存管道的讀端,另一個保持寫端。

當寫入管道時,數據存儲在緩衝區中,等待其他進程檢索它。

如果某個進程正在寫入管道,但另一端的進程突然退出或關閉管道,會發生什麼情況?或者相反,一個過程正在閱讀,就像作家完成或關閉一樣?

此輸入/輸出錯誤稱爲損壞的管道。

+0

我也收到這個錯誤。它可以修復嗎? –

+0

錯誤不能被固定,因爲這只是一個症狀。它告訴你還有另一個問題。這兩個過程中的一個是在它應該(可能通過終止)之前關閉管道,或者其他過程的期望是錯誤的。破損的管道不是錯誤,它是流程生命週期中的不匹配。他們不一起工作correclty – slezica

+0

所以,沒有解決......這是一個無賴。 –