SO_NOSIGPIPE没有被删除

Ank*_*kur 13 c sockets tcp

我想在tcp套接字中使用SO_NOSIGPIPE.

  int set = 1;
  setsockopt(sockDesc, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int);
Run Code Online (Sandbox Code Playgroud)

但是会出现错误:

   error: SO_NOSIGPIPE was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

是否需要任何头文件才能使用它.我通过互联网搜索但没有得到任何有用的解决方案.

Joh*_*nck 18

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