O_NONBLOCK vs O_NDELAY
来源:互联网 发布:最新php环境搭建 编辑:程序博客网 时间:2024/06/10 02:23
O_NONBLOCK vs O_NDELAY
in particular things like a read with O_NDELAY can in some situations return a 0 instead of an error and EAGAIN…
Since 0 normally means EOF… you have to be aware of this behaviour… and NOT immediately close down the handle like you would if you were utilizing O_NONBLOCK and had read( ) return a 0…
O_NONBLOCK和O_NDELAY所产生的结果都是使I/O变成非搁置模式(non-blocking),在读取不到数据或是写入缓冲区已满会马上return,而不会搁置程序动作,直到有数据或写入完成。
它们的差别在于设立O_NDELAY会使I/O函式马上回传0,但是又衍生出一个问题,因为读取到档案结尾时所回传的也是0,这样无法得知是哪中情况;因此,O_NONBLOCK就产生出来,它在读取不到数据时会回传-1,并且设置errno为EAGAIN。
不过需要注意的是,在GNU C中O_NDELAY只是为了与BSD的程序兼容,实际上是使用O_NONBLOCK作为宏定义,而且O_NONBLOCK除了在ioctl中使用,还可以在open时设定。
阅读全文
0 0
- O_NONBLOCK vs O_NDELAY
- O_NONBLOCK与O_NDELAY有何不同?
- O_NONBLOCK与O_NDELAY有何不同
- O_NONBLOCK与O_NDELAY有何不同
- O_NONBLOCK与O_NDELAY有何不同
- O_NONBLOCK与O_NDELAY有何不同
- O_NONBLOCK与O_NDELAY有何不同
- O_NONBLOCK与O_NDELAY有何不同
- O_NONBLOCK与O_NDELAY有何不同?
- O_NONBLOCK与O_NDELAY有何不同
- 设置O_NONBLOCK
- 非阻塞(O_NONBLOCK)
- linux串口属性O_CTTY O_NDELAY
- 使用O_NONBLOCK方式打开设备文件
- 嵌入式代码open("/dev/ttyso",o_RDWR/O_NOCTTY/O_NDELAY);
- code to solve "SOCK_NONBLOCK" and "O_NONBLOCK" undefined problem in linux
- [文件I/O]非阻塞 I/O | O_NONBLOCK
- O_NONBLOCK注意事项(摘抄自《代码的未来》)
- 读入与输出
- Shader编程学习笔记(十)—— Cg语言入门2
- load 和 initialize
- error C2338: /RTCc rejects conformant code错误解决
- C++中的String函数的用法
- O_NONBLOCK vs O_NDELAY
- 穹顶之下,我们该何去何从?
- 如何将PDF格式的文件转换成TXT
- 编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。
- Day10-31.String operator + and +=
- 疯狂java笔记之线性表
- 资深实践篇 |基于Kubernetes 1.61的Kubernetes Scheduler调度详解
- Optimal Division问题及解法
- 无线轮播+小圆点