gpt4 book ai didi

c - 破管错误

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:26 28 4
gpt4 key购买 nike

我在 FTP 实现中的一个打开的数据套接字上使用 write() 来发送文件。但是在写入一些数据后它会挂起一段时间;然后它返回 Broken pipe 错误。对此的任何帮助将不胜感激。我的进程从一个 buff 读取数据包并写入套接字。我注意到这个问题随着带宽的增加而增加。如果我增加了要处理的数据包数量,那么问题就来了。我正在使用 FreeBSD。

我正在使用两个线程,一个读取数据包并写入缓冲区...第二个线程从缓冲区读取这些数据包并写入套接字。

谢谢你的帮助亚历山大

最佳答案

SIGPIPE当检测到尝试将数据写入损坏的管道时,内核会将其发送到您的进程。这可能会发生,例如,如果接收方在您编写时关闭了套接字,或者套接字被另一个线程意外关闭等。这有很多可能的原因。大多数应用程序倾向于忽略此信号并根据“write”返回代码处理错误,因为在 SIGPIPE 中您无能为力。信号处理处理器。基本上,设置 SIGPIPE SIG_IGN 的处理程序以便忽略它并查看来自“write”系统调用的可能返回代码列表并相应地处理它们。

关于c - 破管错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3469567/

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