gpt4 book ai didi

写入数据报套接字是否可以引发 SIGPIPE?

转载 作者:太空狗 更新时间:2023-10-29 14:50:05 24 4
gpt4 key购买 nike

我正在处理一些代码,这些代码需要安全地防止由于 SIGPIPE 而杀死调用者,但是它正在执行的唯一套接字写入将转到数据报套接字(UDP 和 Unix 域数据报套接字) ).我需要担心 SIGPIPE 吗?我在套接字上使用 connect,但初步测试(在 Linux 上)表明,如果没有人在 Unix 域套接字上监听,我只会在发送时收到 ECONNREFUSED。不确定 UDP 会发生什么。

我可以将整个事情包装在 hack 中以摆脱 SIGPIPE,但如果这不是问题,我宁愿节省开销并降低代码复杂性。

最佳答案

答案在发送的规范中:

[EPIPE] The socket is shut down for writing, or the socket is connection-mode and is no longer connected. In the latter case, and if the socket is of type SOCK_STREAM or SOCK_SEQPACKET and the MSG_NOSIGNAL flag is not set, the SIGPIPE signal is generated to the calling thread.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/send.html

因此,不,写入数据报套接字不会生成 SIGPIPEEPIPE 错误。

关于写入数据报套接字是否可以引发 SIGPIPE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5655814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com