搜索指针会发生什么?

时间:2013-04-27 12:18:25

标签: c file file-io size seek

我正在编写自己的fseek函数实现,我想询问几个原因会发生什么。他们在这里:

  1. 如果搜索原点设置为SEEK_SETSEEK_CUR,下一个位置的结果超出文件大小?
  2. 如果搜索原点设置为SEEK_END且下一个位置的结果小于0
  3. 文件的大小是否适合其中的位置,或者是否返回了一些错误代码(然后使用位置指针会发生什么)?

    请帮忙。

1 个答案:

答案 0 :(得分:2)

尝试man fseek获取更多详细信息:

fseek()函数设置stream指向的流的文件位置指示符。以字节为单位测量的新位置是通过将偏移字节添加到由whence指定的位置来获得的。如果whence设置为SEEK_SET,SEEK_CUR或SEEK_END,则偏移量分别相对于文件的开头,当前位置指示符或文件结尾。成功调用fseek()函数会清除流的文件结束指示符,并撤消ungetc(3)函数对同一流的任何影响。

成功完成后,fgetpos(),fseek(),fsetpos()返回0,ftell()返回当前偏移量。否则,返回-1并设置errno以指示错误。