fseek函数用于重定位流(数据流/文件)上的文件内部位置指针。
函数原型int fseek(FILE *stream, long offset, int fromwhere)
参数:
stream为文件流的指针
offset 偏移量
fromwhere 起始位置
具体功能:如果执行成功,stream将指向以fromwhere(起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
扩展资料:
int fseek(FILE *stream, long offset, int fromwhere)
第一个参数file指针
第二个参数移动的偏移量
第三个参数移动到哪里
分别用3个宏
SEEK_SET 既0 文件开头
SEEK_CUR 既1 文件当前位置
SEEK_END 既2 文件结尾
但不推荐用数字 最好用宏
参考资料来源:百度百科-fseek
fseek函数用于重定位流(数据流/文件)上的文件内部位置指针。函数原型int
fseek(FILE
*stream,
long
offset,
int
fromwhere)
参数:
stream为文件流的指针
offset
偏移量
fromwhere
起始位置
具体功能:如果执行成功,stream将指向以fromwhere(起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值:
成功,返回0,失败返回-1,并设置errno的值,可以用perror()函数输出错误。
实例:
#include
<stdio.h>
long
filesize(FILE*stream)
int
main(void)
{
FILE
*stream
stream=fopen("MYFILE.TXT","w+")
fprintf(stream,"This
is
a
test")
printf("File
size
of
MYFILE.TXT
is
%ld
bytes\n",filesize(stream))
fclose(stream)
return
0
}
long
filesize(FILE*stream)
{
long
curpos,length
curpos=ftell(stream)
fseek(stream,0L,SEEK_END)
length=ftell(stream)
fseek(stream,curpos,SEEK_SET)
return
length
}
fseek(fp1,m,1)把文件内部指针移动到离文件开头m字节处第二个参数m偏移量,第三个参数1表示当前位置
它表示偏移量,如果m超过1行的长度,只会回到行首,你要将文件指针fp1上移两行不能用这个函数
fseek,是用于二进制方式打开的文件,移动文件读写指针位置,通常文件打开后,读写位置按先后顺序。fseek函数是设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)