SIGPIPE信号的产生
在tcp四次挥手过程中,发送方向已经调用close)方法的socket一端写数据,会产生sigpipe错误。
close):关闭读写两个方向,会导致sigpipe信号
shutdown):可以选择关闭读/写方向,不会导致sigpipe信号
SIGPIPE信号的解决方法
直接忽略sigpipe信号
void handle_for_sigpipe)
{
struct sigaction sa;
memset&sa, 'void handle_for_sigpipe)
{
struct sigaction sa;
memset&sa, '\0', sizeofsa));
sa.sa_handler = SIG_IGN;
sa.sa_flags = 0;
ifsigactionSIGPIPE, &sa, NULL))
return;
}
', sizeofsa));
sa.sa_handler = SIG_IGN;
sa.sa_flags = 0;
ifsigactionSIGPIPE, &sa, NULL))
return;
}