在solaris中,如何检测send()调用中损坏的套接字?我不想使用信号。
我尝试过SO_NOSIGPIPE和MSG_NOSIGNAL,但两者在Solaris中都不可用,并且我的程序被“断开管道”错误终止。
有没有办法检测出管道破损?
谢谢!
发布于 2010-02-05 15:12:55
您必须使用sigaction()来明确忽略SIGPIPE信号:
struct sigaction act;
act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, NULL);...then send()将返回-1,并将errno设置为EPIPE。
发布于 2010-02-05 19:02:52
我猜在Solaris中你只有有限的选择。AFAIK,caf建议的sigaction似乎是最好的解决方案。
https://stackoverflow.com/questions/2205455
复制相似问题