Chinaunix
标题:
recvfrom的奇怪问题
[打印本页]
作者:
guotie
时间:
2009-04-18 11:00
标题:
recvfrom的奇怪问题
各位兄弟,本人程序遇到奇怪的问题,描述如下:
OS:linux
函数:recvfrom
现象:当接收流量较少的情况下,该系统调用工作完全正常,在接受流量大的情况下,出现EFAULT错误。
经查,EFAULT错误是由于参数的问题引起的。
我的recvfrom调用如下:
recvfrom(rr_sock, (void *)buffer, sizeof(buffer), 0, (struct sockaddr *)&addr, (socklen_t *)&addr_len);
在出现EFAULT错误后,打印buffer,addr,addr_len的地址,发现addr,addr_len的地址确实改变了,问题是我的程序中,没有代码去改变这两个地址啊
注:该socket是在线程中创建的。
请教一下,是否有人遇到过类似的问题。
谢谢!
作者:
xinglp
时间:
2009-04-18 22:17
帖前面的代码addr,addr_len声明初始化的那部分
[
本帖最后由 xinglp 于 2009-4-19 20:43 编辑
]
作者:
JohnBull
时间:
2009-04-19 11:02
越界?
作者:
guotie
时间:
2009-04-20 10:08
初始化肯定没有问题的,因为不是一开始就出现这样的问题。
越界是什么意思?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2