【发布时间】:2013-04-27 12:18:25
【问题描述】:
我目前正在编写自己的 fseek 函数实现,我想问一下在几个原因中会发生什么。他们在这里:
- 如果搜索原点设置为
SEEK_SET或SEEK_CUR并且下一个位置的结果超过文件大小? - 如果seek origin设置为
SEEK_END且下一个位置的结果小于0
文件是否调整大小以适应位置,或者是否返回了一些错误代码(位置指针会发生什么情况)?
请帮忙。
【问题讨论】:
-
您可以通过研究 C stdio 的免费软件实现(例如,MUSL libc,其源代码可读性强),对您的问题有一个很好而详细的答案。 fseek(3) man page 也应该告诉你应该发生什么。此外,底层操作系统是相关的(是一些 Posix 或 Unix 或 Linux,还是其他什么?)