阻塞和非阻塞
产生阻塞的场景:
读设备(dev)文件、读网络文件
tty就是显示终端设备,/dev/tty
这是会读到键盘的值并写道标准输出
第一个hello是自己输入的,是一直在等着,所以是阻塞
非阻塞的代码如下图所示:
此时read返回-1的时候,errno会变成EAGAIN或EWOULDBLOCK,表示非阻塞状态且当前无数据;阻塞情况就是读取错误,所以两个-1的含义是不一样的
但是这样有一个问题:他一直在等,所以可以设置一个超时时间。
设备有数据的时候通知用户才是读数据的最优方法:select poll epoll
主要是给自己看的,所以肯定会出现很多错误哈哈哈哈哈
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律