如果在write调用期间对方关闭连接,视时间顺序的不同有以下几种情况:

1. 刚好在write调用之前对方关闭:

    write返回失败,同时产生SIGPIPE。

2. write调用过程中对方关闭:

    返回已写入的字节数,同时产生SIGPIPE。

SIGPIPE的默认行为是终止程序,所以一般来说我们需要catch之:

static void do_sig_pipe(int sig)
{
}

your_function(...)
{
    ...  
    signal(SIGPIPE, do_sig_pipe);
    ...
}

 

相关文章:

  • 2021-08-25
  • 2021-11-09
  • 2022-12-23
  • 2021-08-11
  • 2022-12-23
  • 2021-09-24
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-03
  • 2022-12-23
  • 2021-12-26
相关资源
相似解决方案