其他分享
首页 > 其他分享> > 阻塞和非阻塞

阻塞和非阻塞

作者:互联网

产生阻塞的场景:
读设备(dev)文件、读网络文件
tty就是显示终端设备,/dev/tty
image
这是会读到键盘的值并写道标准输出
image
第一个hello是自己输入的,是一直在等着,所以是阻塞
非阻塞的代码如下图所示:
image
此时read返回-1的时候,errno会变成EAGAIN或EWOULDBLOCK,表示非阻塞状态且当前无数据;阻塞情况就是读取错误,所以两个-1的含义是不一样的
但是这样有一个问题:他一直在等,所以可以设置一个超时时间。
image
image
设备有数据的时候通知用户才是读数据的最优方法:select poll epoll

标签:tty,所以,阻塞,读数据,dev,设备
来源: https://www.cnblogs.com/yoshinb/p/15932887.html