2007年6月1日 星期五

如何知道PIPE或Socket的另一端已經斷線或關閉fd?

當您使用write()API來進行資料的傳送時,若此時PIPE或Socket發生斷線,或是對方關閉fd時,除了write()API會回傳error外,另外會收到errno=EPIPE的錯誤碼及SIGPIPE訊號會被觸發,這裡要小心,SIGPIPE訊號的預設對應動作是關閉程式,如果您沒有打算關閉程式,應該要把SIGPIPE的Handler改為SIG_IGN。

沒有留言: