fseek函數是 用來設定文件的當前讀寫位置.
函數原型: int fseek(FILE *fp,long offset,int origin);
函數功能:把fp的文件讀寫位置指針移到指定的位置.
fseek(fp,20,SEEK_SET); 意思是把fp文件讀寫位置指針從文件開始后移20個字節.
ftell函數是用來獲取文件的當前讀寫位置;
函數原型: long ftell(FILE *fp)
函數功能:得到流式文件的當前讀寫位置,其返回值是當前讀寫位置偏離文件頭部的字節數.
ban=ftell(fp); 是獲取fp指定的文件的當前讀寫位置,并將其值傳給變量ban.
fseek函數與ftell函數綜合應用:
分析:可以用fseek函數把位置指針移到文件尾,再用ftell函數獲得這時位置指針距文件頭的字節數,這個字節數就是文件的長度.
#include <stdio.h>
main()
{
FILE *fp;
char filename[80];
long length;
printf("輸入文件名:");
gets(filename);
//以二進制讀文件方式打開文件
fp=fopen(filename,"rb");
if(fp==NULL)
printf("file not found!\n");
else
{
//把文件的位置指針移到文件尾
fseek(fp,OL,SEEK_END);
//獲取文件長度;
length=ftell(fp);
printf("該文件的長度為%1d字節\n",length);
fclose(fp);
}
}
from: http://my.opera.com/lau_jia/blog/show.dml/380421