FSEEK - Linux手册页

时间:2019-08-20 18:00:18  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2018-04-30

名称

fgetpos,fseek,fsetpos,ftell,rewind-重新定位流

语法

#include 
int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
void rewind(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)。

InterfaceAttributeValue
fseek(),ftell(),rewind(),
fgetpos(),fsetpos()
Thread safetyMT-Safe

遵循规范

POSIX.1-2001,POSIX.1-2008,C89,C99。

另外参见

lseek(2),fseeko(3)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/