FSEEK - Linux手册页
Linux程序员手册 第3部分
更新日期: 2018-04-30
名称
fgetpos,fseek,fsetpos,ftell,倒带-重新定位流
语法
#包括
int fseek(FILE *流,长偏移量,int wherece);
长ftell(FILE * stream);
无效倒带(FILE * stream);
int fgetpos(FILE * stream,fpos_t * pos);
int fsetpos(FILE * stream,const fpos_t * pos);
说明
fseek()函数为流指向的流设置文件位置指示符。新位置(以字节为单位)是通过将偏移量字节添加到wherece指定的位置而获得的。如果将whence设置为SEEK_SET,SEEK_CUR或SEEK_END,则偏移量分别相对于文件的开头,当前位置指示符或文件的结尾。成功调用fseek()函数将清除流的文件结束指示符,并撤消ungetc(3)函数对同一流的任何影响。
ftell()函数获取stream指向的流的文件位置指示符的当前值。
rewind()函数将stream指向的流的文件位置指示符设置为文件的开头。它等效于:
- (无效)fseek(流,0L,SEEK_SET)
除了流的错误指示符也被清除之外(请参见clearerr(3))。
fgetpos()和fsetpos()函数是等效的替代接口,等效于ftell()和fseek()(whence设置为SEEK_SET),用于设置文件偏移的当前值并将其存储到pos所引用的对象中或从中引用。在某些非UNIX系统上,fpos_t对象可能是一个复杂的对象,并且这些例程可能是可移植地重新定位文本流的唯一方法。
返回值
rewind()函数不返回任何值。成功完成后,fgetpos(),fseek(),fsetpos()返回0,ftell()返回当前偏移量。否则,返回-1并将errno设置为指示错误。
错误说明
- EINVAL
- fseek()的whence参数不是SEEK_SET,SEEK_END或SEEK_CUR。或者:产生的文件偏移量将为负。
- ESPIPE
- 流下的文件描述符是不可搜索的(例如,它是指管道,FIFO或套接字)。
函数fgetpos(),fseek(),fsetpos()和ftell()也可能会失败,并为例程fflush(3),fstat(2),lseek(2)和malloc指定的任何错误设置errno。 (3)。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
fseek(),ftell(),rewind(), fgetpos(),fsetpos() | Thread safety | MT-Safe |
遵循规范
POSIX.1-2001,POSIX.1-2008,C89,C99。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。