[英]Segmentation fault on recv()
我正在使用send / recv在C语言的Unix上编写客户端/服务器程序。 我偶尔会从recv调用中获得分段错误。 这种行为不是完全可重复的; 有时它会发生,有时程序会运行完成。
任何想法可能意味着什么?
如果分段错误在recv()
调用本身中,那么这意味着传递给recv()
的缓冲区没有正确分配,或者不是你告诉recv()
它的大小。
嗯,这通常意味着您收到的数据超过缓冲区所允许的数量。
例如,如果你malloc
20字节和recv
1000字节,你将遇到这个问题。
不幸的是,如果没有看到代码,并且在精神调试领域没有一些非常迅速的进步,我们永远都不会确定* a 。
* a这是发布代码的微妙提示,顺便说一句:-)
这也可能意味着在您写入之前,另一侧的套接字已关闭。 这是一个可能导致您的应用程序关闭的SIGPIPE。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.