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

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是否应理解为,从文件倒说第一个文件开始读取,可是感觉好别扭,谁能告诉我啊 ~~谢谢

慕森王
浏览 82回答 2
2回答

蝴蝶刀刀

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

蓝山帝景

是的intfseek(FILE*stream,longoffset,intfromwhere);函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。实验得出,超出文件末尾位置,还是返回0。往回偏移超出首位置,返回-1,且指向一个-1的位置,请小心使用。fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。 
打开App,查看更多内容
随时随地看视频慕课网APP