阻塞和非阻塞

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

posted @   蘑菇王国大聪明  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示