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

fseek, what does it mean to be to the last byte of a file?

测验中出现了这个问题:

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

fseek( fp, Z, SEEK_END );

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

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

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