为了账号安全,请及时绑定邮箱和手机立即绑定

感觉好别扭,请问该怎么去理解?

感觉好别扭,请问该怎么去理解?

PHP
慕森王 2023-03-18 12:08:53
int fseek( FILE *stream, long offset, int origin ); 第一个参数stream为文件指针,offset为偏移,比如你要从文件的第10000个字节开始读取的话,offset就应该为10000,origin 为标志是从文件开始还是末尾。 origin 的取值: SEEK_CUR Current position of file pointer SEEK_END End of file SEEK_SET Beginning of file那么fseek(fp,-size,1)中-size和1是否应理解为,从文件倒说第一个文件开始读取,可是感觉好别扭,谁能告诉我啊 ~~谢谢
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

fseek最后一个参数最好不要直接指定一个数值,比如1,
要使用SEEK_CUR,SEEK_END,SEEK_SET
第二个参数表示相对于第三个参数的偏移,整数表示正向偏移,负数表示负向偏移,比如
fseek(fp,-size,SEEK_CUR);
从当前位置向文件后方(比如文件有123三个数字,那么2在三的后方,3在2的前方)
fseek(fp,size,SEEK_SET);
从文件开始位置向前移动size

这里默认size是正数

查看完整回答
反对 回复 2023-03-21
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

是的
int
fseek(FILE
*stream,
long
offset,
int
fromwhere);函数设置文件指针stream的位置。
如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
实验得出,超出文件末尾位置,还是返回0。往回偏移超出首位置,返回-1,且指向一个-1的位置,请小心使用。
fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。

 


查看完整回答
反对 回复 2023-03-21
  • 2 回答
  • 0 关注
  • 55 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信