【问题标题】:SO_NOSIGPIPE was not declaredSO_NOSIGPIPE 未声明
【发布时间】:2015-01-01 09:01:58
【问题描述】:

我正在尝试在 tcp 套接字中使用 SO_NOSIGPIPE。

  int set = 1;
  setsockopt(sockDesc, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int);

但出现错误:

   error: SO_NOSIGPIPE was not declared in this scope

是否需要任何头文件才能使用它。我在 Internet 上进行了搜索,但没有得到任何有用的解决方案。

【问题讨论】:

标签: c sockets tcp


【解决方案1】:

Linux 中没有SO_NOSIGPIPE(其他一些系统也没有)。您可以在调用send() 时使用MSG_NOSIGNAL 标志,或者使用signal(SIGPIPE, SIG_IGN) 使您的整个应用程序忽略SIGPIPE

【讨论】:

  • 我包括 并使用了信号(SIGPIPE,SIG_IGN),它对我有用。谢谢。
猜你喜欢
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 2011-02-06
  • 2021-11-21
  • 2013-05-07
  • 2021-08-04
  • 2019-03-21
相关资源
最近更新 更多