别忘了--要处理被中断的系统调用
2011-06-23 16:59
253 查看
一般慢速系统调用基本规则是:当阻塞于某个慢系统系统调用的一个进程捕获某个信号且相应信号处理函数返回时,该系统调用可能要返回
ENINTR错误。
问:linux会重启某些被中断的系统调用吗?
处理的例子:
在tcp socket 中,connect()被中断后是不能被重启的?如何处理呢
可以采用select来等待连接完成
ENINTR错误。
问:linux会重启某些被中断的系统调用吗?
处理的例子:
for( ; ;) { if (connfd = accept(listenfd, (SA *) &cliaddr, &clilen)) < 0) { if (errno == EINTR) continue; } else { errsys("accept error"); } }
在tcp socket 中,connect()被中断后是不能被重启的?如何处理呢
可以采用select来等待连接完成
相关文章推荐
- linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式
- 系统调用和中断处理的异同(以Linux MIPS为例)
- linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式
- 如何处理被中断的系统调用
- 通过分析system_call中断处理过程来深入理解系统调用
- Linux中断处理之系统调用
- Socket进程处理被中断的系统调用及Accept函数返回EINTR错误处理
- linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式
- 3. ARMv8 中断及异常处理(包括系统调用,系统调用即同步异常)
- linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式
- 网络编程:处理僵死进程和被中断的系统调用
- linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式
- 《Linux内核分析》-- 扒开系统调用的三层皮(下)之system_call中断处理过程 20135311傅冬菁
- 系统调用与软件中断SWI的实现
- 信号中断 与 慢系统调用
- Linux内核spin_lock 要防止该锁在中断处理程序调用
- Linux0.11内核--系统中断处理程序int 0x80实现原理
- 异常和中断处理 ARM系统开发者指南 Chapter9-1
- linux系统中关于中断、异常、系统调用、陷阱等概念的解析
- linux2.6下系统调用被信号中断时的响应