【发布时间】:2018-08-30 20:59:02
【问题描述】:
我对来自第 446 页上的 C Programming: A Modern Approach, 2nd Edition 的声明感到困惑,
对于二进制流,
fseek不需要支持 where 为SEEK_END的调用
这是为什么呢?这似乎是一个奇怪的规定。
【问题讨论】:
我对来自第 446 页上的 C Programming: A Modern Approach, 2nd Edition 的声明感到困惑,
对于二进制流,
fseek不需要支持 where 为SEEK_END的调用
这是为什么呢?这似乎是一个奇怪的规定。
【问题讨论】:
查找in the spec,上面写着
将文件位置指示器设置为文件结尾,与
fseek(file, 0, SEEK_END)一样,对于二进制流(因为可能尾随null字符)或任何具有不依赖于状态的编码的流具有未定义的行为确保在初始移位状态结束。
所以我猜是空字符的存在导致了这种行为,尽管我不确定为什么在这里对它们进行不同的处理。
【讨论】: