阻塞和非阻塞:是设备文件,网络文件的属性
产生阻塞的场景:读设备文件,读网络文件(读常规文件无阻塞概念)
/dev/tty--终端文件
open(“/dev/tty”,O_RDWR|O_NOBLOCK) --设置/dev/tty非阻塞状态,(默认为阻塞状态)
read函数返回值
-1:并且errno = EAGAIN或者EWOULDBLOCK,说明不是read失败,而是read在以非阻塞方式读一个设备文件(网络文件),并且文件无数据
、、、、、、
这里举个简单例子
运行
这里再举个带时间限制的例子
读取终端,询问5次,没有输入就时间耗尽,退出程序,有就再打印出来