如何經過ftell和fseek來獲取文件大小

 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

相關文章
相關標籤/搜索