c - 二进制流上带有 WHENCE 的 SEEK_END
问题描述
我对C Programming: A Modern Approach, 2nd Edition on Page 446 中的这句话感到困惑,
对于二进制流,
fseek
不需要支持 wherece 的调用SEEK_END
这是为什么?这似乎是一个奇怪的规定。
解决方案
在规范中查找它,它说
将文件位置指示符设置为文件结尾,与 一样
fseek(file, 0, SEEK_END)
,对于二进制流(因为可能存在尾随null
字符)或任何具有状态相关编码但不能确保以初始移位状态结束的流具有未定义的行为。
所以我想是空字符的存在导致了这种行为,尽管我不确定为什么在这里对它们进行不同的处理。
推荐阅读
- database - 数据库 SQL 执行器(旧版)0:2211 执行失败:违反主键约束
- vue.js - 如何在 Vue.js 中指定 userId - Vue Cookie
- python-3.x - 垂直线不会出现在 pyplot - pandas 中它们应该出现的位置
- python - NumPy:有效地将行/列分配给数组
- c# - Twilio TaskRouter - 在分配回调中检索来电者号码
- c++ - 在哈希表 C++ 中插入函数
- linux - 使用“git diff”命令生成补丁文件。使用“patch”命令应用补丁文件后,权限丢失
- azure-devops - 如何将 selenium IDE 测试用例集成到 azure devops 管道?
- spring - 根据@RequestMapping 的产生条件返回错误响应的内容类型
- asp.net-core - “错误”:“内部 API 错误:无效的对象名称 'starter_core.Users'。”