如何经过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

相关文章
相关标签/搜索