【发布时间】:2011-08-05 01:50:59
【问题描述】:
由于SIGPIPE,我正在处理一些需要安全防止杀死调用者的代码,但它正在执行的唯一套接字写入是数据报套接字(UDP 和 Unix 域数据报套接字)。我需要担心SIGPIPE 吗?我在套接字上使用 connect,但初步测试(在 Linux 上)表明,如果没有人在 Unix 域套接字上监听,我只会在发送时收到 ECONNREFUSED。不确定 UDP 会发生什么。
我可以用 hack 包起来以摆脱 SIGPIPE,但如果这不是问题,我宁愿节省开销并降低代码复杂性。
【问题讨论】:
-
我会给你一个不好的答案。我想我之前在 Linux 系统启动时启动应用程序时已经看到过这种情况。我不能说它是否绝对是一个数据报套接字是潜在的问题,但据我所知,我们没有为该应用程序使用任何 TCP 套接字。只是一个测试用例供您考虑它是否适用于您。
-
我想我可能只是安排使用
sendto而不是write,这样我就可以传递禁用SIGPIPE的标志。
标签: c sockets posix datagram sigpipe