为什么Linux syscall read返回的值小于请求的大小?

问题描述

成功后,read(2)系统调用将返回读取的字节数。 手册页上说

如果此数字小于请求的字节数,这不是错误;例如,这可能是因为当前实际可用的字节较少(可能是因为我们接近文件末尾,或者因为我们正在从管道或终端读取),或者因为read()被a中断了。信号。

为确保已阅读完整文件解决方案显然是再次调用read(),因为返回0始终表示EOF。但是,我的问题是出于什么原因,除了收到信号以外,read()在常规文件上可能会返回更少的字节 ? 对于常规文件,“接近文件末尾”将如何减少读取的字节数?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)