斷開的管道?
在《unix/linux編程實踐》一書中的多線程web server例子,我用ab測試一下老是導致程序掛掉,報一個斷開的管道的錯誤。搜索得知,這個錯誤就是一般常見的Connection reset by peer。當往關閉的管道或是socket裏麵寫東西就會產生SIGPIPE信號,而係統默認對這個信號的處理是殺死該進程,因此解決辦法就是在程序中設置忽略這個信號:
#include<signal.h>
....
signal(SIGPIPE, SIG_IGN);
....
signal(SIGPIPE, SIG_IGN);
文章轉自莊周夢蝶 ,原文發布時間2007-08-29
最後更新:2017-05-17 16:32:18