man fgetpos fseek fsetpos ftell rewind

名称

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

概要

        #include <stdio.h>

        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设置流的文件位置指示器。以字节为单位,新的位置由whence指定的位置

        加上offset个字节的偏移决定。whence为SEEK_SET,SEEK_CUR或者SEEK_END,

        分别表示偏移是相对于文件起始位置,当前位置,或者文件末尾。调用函数fseek

        成功则清除流的EOF标志并且撤销函数ungetc对流产生的所有影响。

        ftell获取流的当前文件位置指示器的值。

        rewind设置文件位置指示器指向文件起始位置,除了流的错误标志也被清除之外

        (参考clearerr),该函数调用等价于:(void) fseek(stream, 0L, SEEK_SET)。

        fgetpos和fsetpos是ftell和fseek(whence等于SEEK_SET)的替代函数,设置文件

        位置偏移值为pos指向的对象的值,或者将文件位置偏移值保存到pos指向的对象。

        在一些非UNIX系统中,fpos_t可能是一个复杂的数据类型,并且这些函数是重新

        定位流的唯一可移植方法。

返回值

        rewind不返回值。如果成功,fgetpos,fseek,fsetpos返回0、ftell返回当前的文件

        位置偏移值,失败则返回-1并且errno被设置为对应的错误码。

错误

        EBADF 流不可做位置偏移操作。

        EINVAL 参数whence不是SEEK_SET,SEEK_CUR或者SEEK_END,或者最终的文件

        偏移值为负数。

        fgetpos,fseek,fsetpos,ftell,也可能会因为fflush,fstat,lseek,malloc失败而失

        败,此时errno为对应的错误值。

线程安全特征

接口

特征

fseek(), ftell(), rewind(), fgetpos(), fsetpos()

线程安全

多线程安全

标准

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

推荐阅读

        lseek,fseeko

版本记录

        这个页面是Linux man-pages项目4.04版本的一部分。关于该项目的信息和bug报

        道可以在该网站找到:http://www.kernel.org/doc/man-pages/。

                                2015-08-08

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ta是一个搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值