Fifo
損壞的 FIFO 的句柄的持久性是什麼?
假設一個應用程序打開寫入,一個文件,它是一個 FIFO,有東西正在“偵聽”,然後,這個“偵聽器”關閉;如果應用程序嘗試寫入它,應用程序將收到損壞的管道錯誤。沒關係,但我想知道是否存在重用句柄的風險,因此存在寫入不再應有的句柄的風險。因此問題是:損壞的 FIFO 句柄的持久性是什麼?應用程序可以依賴損壞的管道錯誤多長時間才能知道 FIFO 的另一端已關閉?或者它是否保證句柄在應用程序的整個生命週期中永遠不會被重用,除非它明確關閉它?
文件描述符將繼續與打開呼叫中使用的文件或 FIFO 相關聯,直到關閉(通過呼叫
close
ordup2
或程序退出等),即使與打開的文件描述符對應的文件或 FIFO 被刪除(如在這個問題中)並創建了另一個同名文件,只要文件描述符保持打開狀態,您仍然可以對原始文件執行 I/O。此外,沒有超時會導致 FIFO 因不活動而關閉。