我正在处理一些代码,因为SIGPIPE
而需要安全地阻止调用者,但是它唯一执行的套接字写入数据报套接字(UDP和Unix域数据报套接字)。我需要担心SIGPIPE
?我在套接字上使用了connect
,但是初步测试(在Linux上)显示,如果没有人在Unix域套接字上侦听,我就会发送ECONNREFUSED
。不知道UDP会发生什么。可以写入数据报套接字有没有提出SIGPIPE?
我可以将所有东西都包装在黑客中以摆脱SIGPIPE
,但是如果这不是问题,我宁愿节省开销并保持代码复杂性。
我打算给你一个不好的答案。我认为在Linux系统启动时启动应用程序之前我已经看到它发生了。我不能说它确实是一个数据报套接字,它是潜在的问题,但据我所知,我们没有为该应用程序使用任何TCP套接字。只是一个测试案例,供您考虑它是否适用于您。 – Jeff 2011-04-14 01:25:54
我想我可能只是安排使用'sendto'而不是'write',所以我可以传递那个禁用'SIGPIPE'的标志。 – 2011-04-14 01:54:43