当前位置:首页 > 学习资源 > 讲师博文 > 嵌入式学科-详解fseek函数

嵌入式学科-详解fseek函数 时间:2023-04-18      来源:未知

首先查看一下linux用户使用手册



函数名:fseek

头文件:#include

功能:把与stream 有关的读写文件位置指针放到一个指定位置。

参数:FILE *stream :使用fopen打开的文件指针stream

long offset : 偏移位置(以字节为单位)

int whence :基准位置,它一般指定为下列常量之一:
 

起始点            对应的数字       代表的文件位置

SEEK_SET          0                       文件开头

SEEK_CUR         1                    文件当前位置

SEEK_END         2                        文件末尾

函数声明:  int fseek(FILE *stream, long offset, int whence);

如果执行成功,stream将指向以whence为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset取值大于等于2*1024*1024*1024,即long的正数范围2G),则不改变stream指向的位置,函数返回-1,并且会设置errno,可以使用perror()输出错误原因。

例题代码:

 

程序运行结果:

 

fseek的第二个参数偏移位置正数表示向后(文件结尾的方向)移动,负号表示向前(文件开头的方向)移动。

例:

fseek(stream, 100L, SEEK_CUR);//把stream指针移动到离文件当前位置100字节处。

fseek(stream, -100L,SEEK_END);//把stream指针移动到离文件结尾100字节处。

使用实例:

 

fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。通过ftell,可以获取当前指针距离文件开头的字节数。

 

注意事项:

fseek一般用于二进制文件的指针移动,也可以用于文本文件,但操作的stream必须是已经打开的文件。如果没有打开的文件,那么将会出现错误。

fseek不能操作进程间通信的文件,如:pipe,FIFO或者socket。如果操作这些文件将会返回-1,并且设置errno为ESPIPE。


上一篇:格式化输入

下一篇:嵌入式的定义和应用

戳我查看2020年嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2024 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部