侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

fseek函数用法详解

noerror
2022-10-04 / 0 评论 / 0 点赞 / 49 阅读 / 576 字 / 正在检测是否收录...

fseek函数用法详解

fseek函数简介

  • 头文件包含
#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函数常见使用错误

  • 编译错误
    warning: implicit declaration of function ‘fseek’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <stdio.h>

fseek函数详细描述

fseek ()函数为stream 指向的流设置文件位置指示符。如果whence被设置为SEEK_SET 、SEEK_CUR 或SEEK_END ,则通过将offset字节添加到whence 指定的位置来获得新位置(以字节为单位)。偏移量分别相对于文件的开始、当前位置指示符或文件的结束。成功调用fseek ()函数将清除流的文件结束指示符,并撤消ungetc (3)函数对同一流的任何影响。
ftell ()函数获取stream 指向的流的文件位置指示符的当前值
rewind ()函数将stream指向的流的文件位置指示器设置为文件的开头。它相当于:
.rs(void)fseek(stream,0L,SEEK_SET).re
除了流的错误指示符也被清除(请参见clearerr (3))
fgetpos ()和fsetpos ()函数是与ftell ()和fseek ()等效的替代接口(在某些非UNIX系统上,将whence设置为SEEK_SET )设置并存储pos 引用的对象中的文件偏移量的当前值,fpos_t对象可能是一个复杂的对象,这些例程可能是可移植地重新定位文本流的唯一方法)。

fseek函数返回值

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

fseek函数错误码

  • EINVAL fseek ()的whence参数不是SEEK_SET 、SEEK_END 或SEEK_CUR ,或者:结果文件偏移量为负值。
  • ESPIPE stream底层的文件描述符是不可查找的(例如,它指的是管道、FIFO或套接字)。

函数fgetpos (),fseek (),fsetpos ()和ftell ()也可能失败,并为例程fflush (3),fstat (2),lseek (2)和malloc (3)指定的任何错误设置errno

0

评论区