Linux 文件 I/O 操作:读写、同步与错误处理
1. 读取操作 read()
在进行文件读取时, read() 函数是常用的系统调用。不过,其返回情况较为复杂,需要仔细处理各种情况以确保数据的完整读取。
1.1 read() 函数返回情况
- 返回值为可用字节数或到达 EOF :若有可用数据,会返回读取的字节数;若在读取
len字节前到达文件末尾(EOF),重新调用read()(更新buf和len值)可读取剩余字节或指出问题原因。 - 返回 0 :表示到达 EOF,无数据可读。
- 调用阻塞 :当前无可用数据时会阻塞,但在非阻塞模式下不会出现此情况。
- 返回 -1 且
errno为EINTR:表示在读取任何字节前接收到信号,可重新调用该函数。 - 返回 -1 且
errno为EAGAIN:表示当前无可用数据,读取会阻塞,请求应稍后重新发出,仅在非阻塞模式下出现。 - 返回 -1 且
errno为其他值 <
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



