c - fseek,到文件的最后一个字节是什么意思?

标签 c file fseek

这个问题在测验中弹出:

用正确的数字替换“Z”以将 FILE 指针“fp”设置为文件的最后一个字节:

fseek( fp, Z, SEEK_END );

我的回答是 -1,因为对我来说,位于某个字节意味着位于某个位置使得附加到该文件会覆盖该字节并继续存储其他字节(如果有的话)似乎很自然。老师坚持0。如果你能解释一下,我将不胜感激。

最佳答案

-1 似乎是正确的。我刚刚试过了,fseek(f, -1, SEEK_END) 之后的 fgetc 产生了文件的最后一个字符。相对于 SEEK_END 查找 0 导致 fgetc 返回 EOF

很明显,指向文件的最后一个字节与指向文件末尾是不同的。此外,如果术语有任何歧义,那是测试失败,而不是学生失败。如果学生展示了预期的知识,他们应该获得学分。

关于c - fseek,到文件的最后一个字节是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47596230/

相关文章:

c - 如何在 C 中使用枚举

c - C 中意外的文件指针遍历行为

python - 如何在有限的环境中从 Python 中的大文件中删除行

Java 文件存储抽象层?

c - Linux 和 Windows 上结构的不同值

c - fgetpos/fsetpos 比 fseek 快吗?

带有字符数组 : "warning: array subscript has type ' char'"的 C 警告

在 C 中将二叉树转换为数组(并稍后保存)

c - 在我的 c 代码中删除重复项时出现错误

c - C语言从文件中读取值