慢系统调用的中断与重启
来源:互联网 发布:考勤机现场打印数据 编辑:程序博客网 时间:2024/06/01 07:39
所谓慢系统调用("slow" system calls),是指在调用过程中可能会永久阻塞的调用。比如,读写管道、终端或网络设备时的read、write。
慢系统调用可能会被信号中断,通常这个情况下,该调用会返回错误,并设置errno为EINTR(有些系统的实现不返回错误,返回中断前已经读写的那一部分数据的字节数)。尽管如此,现在很多系统提供了慢系统调用的自动重启机制,比如,在使用sigaction时指定SA_RESTART标志,就可以让被中断的系统调用自动重启。
虽然有这个重启机制,但并不是所有的系统都支持,所以,考虑到可移植性,通常慢系统调用的代码写成下面的样子:
again:
if ((n = read(fd, buf, BUFFSIZE)) < 0) {
if (errno == EINTR)
goto again; /* just an interrupted system call */
/* handle other errors */
}
- 慢系统调用的中断与重启
- 关于信号中断与慢系统调用的深度发现
- 慢系统调用与信号中断
- 信号中断 与 慢系统调用
- 信号中断 与 慢系统调用
- 信号中断 与 慢系统调用
- 慢系统调用与信号中断(转)
- 信号中断 与 慢系统调用
- 信号中断 与 慢系统调用
- 信号中断 与 慢系统调用
- 系统调用与中断
- 中断的系统调用
- 中断的系统调用
- linux 中断与系统调用
- linux中断与系统调用
- 中断、异常与系统调用
- 系统调用与软件中断SWI的实现
- 系统调用与软件中断SWI的实现
- 实习生,去大公司好还是小公司好?
- 标准键盘码值表-十六进制
- 2010山寨版搞笑語錄-你要是尟花,牛都不敢拉糞了
- Windows Phone 7 开发 31 日谈——第9日:调试技巧
- 直接进分公司调回总公司?还是以后再应聘总公司?求指点~~~
- 慢系统调用的中断与重启
- LPCTSTR,LPWSTR, PTSTR, LPTSTR区别
- SQL无法启动一种解决
- 【转载】C#中获取程序当前路径的集中方法
- HDU1671字典树
- 五大语言入口点特征
- vb.net 多线程与SyncLock锁
- 查找一个字符串在另一个字符串中出现的所有位置
- 使用委托(C# 编程指南)