Posted on 2007-08-29 19:17
dennis 閱讀(1966)
評論(0) 編輯 收藏 所屬分類:
linux & C
在《unix/linux編程實踐》一書中的多線程web server例子,我用ab測試一下老是導致程序掛掉,報一個斷開的管道的錯誤。搜索得知,這個錯誤就是一般常見的Connection reset by peer。當往關閉的管道或是socket里面寫東西就會產生SIGPIPE信號,而系統默認對這個信號的處理是殺死該進程,因此解決辦法就是在程序中設置忽略這個信號:
#include<signal.h>
....
signal(SIGPIPE, SIG_IGN);