如何通過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(重定位流上的文件指針)

    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字節處;

   返回值: 成功,返回0,否則返回其他值。

   ftell(返回當前文件位置)

   long ftell(FILE *stream)

   函數說明:用於得到文件位置指針當前位置相對於文件首的偏移字節數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM