Posted on 2007-08-29 19:17
dennis 阅读(1959)
评论(0) 编辑 收藏 所属分类:
linux & C
在《unix/linux编程实践》一书中的多线程web server例子,我用ab测试一下老是导致程序挂掉,报一个断开的管道的错误。搜索得知,这个错误就是一般常见的Connection reset by peer。当往关闭的管道或是socket里面写东西就会产生SIGPIPE信号,而系统默认对这个信号的处理是杀死该进程,因此解决办法就是在程序中设置忽略这个信号:
#include<signal.h>
....
signal(SIGPIPE, SIG_IGN);