您的位置:首页 > 其它

别忘了--要处理被中断的系统调用

2011-06-23 16:59 253 查看
一般慢速系统调用基本规则是:当阻塞于某个慢系统系统调用的一个进程捕获某个信号且相应信号处理函数返回时,该系统调用可能要返回

ENINTR错误。

问:linux会重启某些被中断的系统调用吗?

处理的例子:

for( ; ;) {
if (connfd = accept(listenfd, (SA *) &cliaddr, &clilen)) < 0)
{
if (errno == EINTR)
continue;
}
else
{
errsys("accept error");
}
}


在tcp socket 中,connect()被中断后是不能被重启的?如何处理呢

可以采用select来等待连接完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: