laoma634980838

导航

fseek()函数

fseek()函数

int fseek(FILE *stream, long offset, int fromwhere);fseek 用于二进制方式打开的文件,移动文件读写指针位置.

第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移,即光标向后移一个单位,换行符占两个单位
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET

SEEK_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 #include <stdio.h>
 2 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 }

 

posted on 2012-11-12 14:25  马聪  阅读(377)  评论(0编辑  收藏  举报