写入数据报套接字是否可以提高SIGPIPE?
|
我正在使用一些代码,由于ѭ0的缘故,这些代码需要确保不会杀死调用者,但是它正在执行的唯一套接字写入数据报套接字(UDP和Unix域数据报套接字)。我需要担心
SIGPIPE
吗?我在套接字上使用了ѭ2but,但是(在Linux上)初步测试表明,如果没有人在Unix域套接字上进行监听,那么我在发送时就得到了ECONNREFUSED
。不确定UDP会发生什么。
我可以将整个程序包装在hack中,以消除ѭ0的问题,但是如果不是问题,我宁愿节省开销并降低代码复杂度。
没有找到相关结果
已邀请:
3 个回复
芦歉竭皑
的规范中: [EPIPE]该套接字已关闭以进行写入,或者该套接字处于连接模式并且不再连接。在后一种情况下,如果套接字的类型为SOCK_STREAM或SOCK_SEQPACKET,并且未设置MSG_NOSIGNAL标志,则将SIGPIPE信号生成到调用线程。 http://pubs.opengroup.org/onlinepubs/9699919799/functions/send.html 因此,不,对数据报套接字的写操作不会产生“ 0”或“ 7”错误。
号拳藐孔妇
嗓瑰
, EPIPE:fd连接到读数端关闭的管道或插座。发生这种情况时,写入过程还将收到SIGPIPE信号。 (因此,写 仅当程序捕获,阻止或忽略此信号时,才能看到返回值。) 似乎可以在写入套接字时获得SIGPIPE,但是尚不清楚它是否可以专门用于UDP套接字。