fseek()函数
int fseek(FILE *stream, long offset, int fromwhere);fseek 用于二进制方式打开的文件,移动文件读写指针位置.
第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移,即光标向后移一个单位,换行符占两个单位第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SETSEEK_SET: 文件开头
SEEK_CUR: 当前位置SEEK_END: 文件结尾其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.简言之:
fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。应用实例:
1 #include2 long filesize(FILE *stream); 3 int main(void) 4 { 5 FILE *stream; 6 stream = fopen("MYFILE.TXT", "w+"); 7 fprintf(stream, "This is a test"); 8 printf("Filesize of MYFILE.TXT is %ld bytes/n", filesize(stream)); 9 fclose(stream);10 return 0;11 }12 long filesize(FILE *stream)13 {14 long curpos, length;15 curpos = ftell(stream);16 fseek(stream, 0L, SEEK_END);17 length = ftell(stream);18 fseek(stream, curpos, SEEK_SET);19 return length;20 }