1 #include <stdio.h> 2 int main () 3 { 4 FILE * pFile=NULL; 5 long size; 6 pFile = fopen ("myfile.txt","rb"); 7 if (pFile==NULL) perror ("Error opening file"); 8 else 9 { 10 fseek (pFile, 0, SEEK_END); 11 size=ftell (pFile); 12 fclose (pFile); 13 pFile=NULL; 14 printf ("Size of myfile.txt is: %ld bytes.\n",size); 15 } 16 return 0; 17 }
首先利用fseek(pfile,0,SEEK_END)將文件的當前位置移到文件的末尾,而後調用函數ftell()得到當前位置相對於文件首的位移,該位移值就等於文件所含字節數。這樣就獲得文件大小了!函數
fseek(重定位流上的文件指針)spa
int fseek(FILE *stream, long offset, int fromwhere);指針
函數說明:第一個參數stream爲文件指針, 第二個參數offset爲偏移量,整數表示正向偏移,負數表示負向偏移 第三個參數fromwhere設定從文件的哪裏開始偏移,可能取值爲:SEEK_CUR(當前位置)、 SEEK_END(文件結尾)或 SEEK_SET(文件開頭), 其中SEEK_SET,SEEK_CUR和SEEK_END的值依次爲0,1和2。
例如:
fseek(fp,100L,0);把fp指針移動到離文件開頭100字節處;code
返回值: 成功,返回0,不然返回其餘值。blog
ftell(返回當前文件位置)io
long ftell(FILE *stream)class
函數說明:用於獲得文件位置指針當前位置相對於文件首的偏移字節數。stream