在Solaris中发送检测破裂的管道()调用
-
18-09-2019 - |
题
在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建议看来是最好的解决办法。
不隶属于 StackOverflow