在solaris上如何检测发送破碎插座()调用?我不想使用的信号。结果 我想SO_NOSIGPIPE和MSG_NOSIGNAL但都无法在Solaris和我的程序是越来越有“断管”的错误杀害。

是否有任何方法来检测断管?

谢谢!

有帮助吗?

解决方案

您将不得不使用sigaction()特异性忽略SIGPIPE信号:

struct sigaction act;

act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, NULL);

...然后send()将返回-1与errno设置为EPIPE

其他提示

我想在Solaris中你只有有限的选择。 AFAIK,sigaction的由CAF建议看来是最好的解决办法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top