int fseek(FILE *stream, long offset, int fromwhere) 重定位流上的文件指针
返回值: 成功,返回0,否则返回-1。
第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可以取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
fseek(fp,5,SEEK_SET);把fp指针移动到离文件开头5字节处;
fseek(fp,5, SEEK_CUR);把fp指针移动到离文件当前位置5字节处;
fseek(fp,-5,SEEK_END);把fp指针退回到离文件结尾5字节处。
示例代码
int main(int argc, char const *argv[])
{
FILE *fp;
fp = fopen("1.txt","w");
if(fp == NULL)
{
perror("fopen:");
return 0;
}
fwrite("abcdef",6,1,fp);
printf("current fp = %ld\n",ftell(fp));
fseek(fp,3,SEEK_SET);
rewind(fp);
printf("After rewinf fp = %ld\n",ftell(fp));
fwrite("vvv",3,1,fp);
fclose(fp);
return 0;
}