我正在编写自己的fseek函数实现,我想询问几个原因会发生什么。他们在这里:
SEEK_SET
或SEEK_CUR
,下一个位置的结果超出文件大小?SEEK_END
且下一个位置的结果小于0 文件的大小是否适合其中的位置,或者是否返回了一些错误代码(然后使用位置指针会发生什么)?
请帮忙。
答案 0 :(得分:2)
尝试man fseek获取更多详细信息:
fseek()函数设置stream指向的流的文件位置指示符。以字节为单位测量的新位置是通过将偏移字节添加到由whence指定的位置来获得的。如果whence设置为SEEK_SET,SEEK_CUR或SEEK_END,则偏移量分别相对于文件的开头,当前位置指示符或文件结尾。成功调用fseek()函数会清除流的文件结束指示符,并撤消ungetc(3)函数对同一流的任何影响。
成功完成后,fgetpos(),fseek(),fsetpos()返回0,ftell()返回当前偏移量。否则,返回-1并设置errno以指示错误。