c - Read() 返回值和 EOF
问题描述
我读到EOF定义为:
#define EOF (-1)
那么为什么读取返回值是:
返回值: 如果成功,则返回实际读取的字节数。在读取文件结尾时,返回零。否则,返回 -1 并设置全局变量 errno 以指示错误。
为什么在读取文件结尾时它不返回-1?
解决方案
该宏由标准 CEOF
定义,<stdio.h>
并由使用标准 I/O 流 ( FILE *
) 的函数使用。
诸如read()
是 POSIX 的一部分的函数,并在<unistd.h>
标头中声明。它们与标准 I/O 流无关,根本不使用EOF
。
推荐阅读
- node.js - nodejs应用在localhost上运行时,如何与api网关aws集成?
- asp.net-mvc - 即使在请求浏览器关闭后如何在服务器上上传大文件(最大 30 GB)
- vuejs2 - VueSelect如何使用对象的属性设置初始值
- excel - 根据用户输入插入行(文本框值)
- python - 收到错误“此后端不支持绝对路径。” 在 S3 中覆盖文件时
- ajax - CSRF after (enable to true) not working INSERT, ADD, DELETE
- postgresql - PostgreSQL:从表中选择返回的列多于表定义
- beanstalkd - Beanstalkd 管丢失
- c# - async/await 同步运行?
- salt-stack - 有没有办法以 xml 格式生成盐状态输出?