当前位置: 技术问答>linux和unix
socket编程中的函数send和recv如何被信号中断?
来源: 互联网 发布时间:2015-06-01
本文导语: 比如,recv函数调用会不会出现以下情况: 本来要接受100个字节,但是在接受到20个字节时,有信号来了,这个recv会被中断并且以-1返回吗? 我担心的是会出现这种情况,一方面它以-1(EINTR)返回,另一方面它将数据...
比如,recv函数调用会不会出现以下情况:
本来要接受100个字节,但是在接受到20个字节时,有信号来了,这个recv会被中断并且以-1返回吗?
我担心的是会出现这种情况,一方面它以-1(EINTR)返回,另一方面它将数据接收一部分走了。
请问会出现这种情况吗?
谢谢!
本来要接受100个字节,但是在接受到20个字节时,有信号来了,这个recv会被中断并且以-1返回吗?
我担心的是会出现这种情况,一方面它以-1(EINTR)返回,另一方面它将数据接收一部分走了。
请问会出现这种情况吗?
谢谢!
|
不会
|
不会
if( errno == EINTR )
continue;
if( errno == EINTR )
continue;
|
不会。
如果会,那这种通信系统就没有用了。
如果会,那这种通信系统就没有用了。
|
绝对不会,请相信我们的LINUX!!!
|
还有:
实在不放心,你可以用_disable()和_enable()把recv等函数给保护起来啊!
实在不放心,你可以用_disable()和_enable()把recv等函数给保护起来啊!