SIGPIPE信号的产生及处理

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;
}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注