关于EINTR
来源: 互联网 发布时间:2016-01-30
本文导语: 程序被中断以后,断点重启? 从被中断的这个函数重新启动? 还是? | 应该是从被中断的函数重新启动. | 如果被调用的函数会修改参数,从设置这些参数的语句开始,例如...
程序被中断以后,断点重启? 从被中断的这个函数重新启动? 还是?
|
应该是从被中断的函数重新启动.
|
如果被调用的函数会修改参数,从设置这些参数的语句开始,例如经典的Unix select系统调用:
for( ;; )
{
tv.tv_sec = 30;
tv.tv_usec = 0;
FD_ZERO( &rfds );
FD_SET( sockfd, &readmask );
switch( ret = select( sockfd + 1, &rfds, NULL, NULL, &tv ) )
{
case 0:
return TIMEOUT;
case -1:
if ( (errno == EINTR) )
continue;
return BROKEN;
default:
if ( FD_ISSET( sockfd, &rfds ) )
{
...
}
}
}
for( ;; )
{
tv.tv_sec = 30;
tv.tv_usec = 0;
FD_ZERO( &rfds );
FD_SET( sockfd, &readmask );
switch( ret = select( sockfd + 1, &rfds, NULL, NULL, &tv ) )
{
case 0:
return TIMEOUT;
case -1:
if ( (errno == EINTR) )
continue;
return BROKEN;
default:
if ( FD_ISSET( sockfd, &rfds ) )
{
...
}
}
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。