zoukankan      html  css  js  c++  java
  • Linux下求取文件长度的几种常用方法

    在文件IO的编程过程中,经常会遇到如何求取文件长度的问题,这里将工作及教学中积累的一些常用方法写出来与大家分享。

    第一类:lseek/fseek

    1、lseek

    代码片段:

    int GetFileSize(char *_pName) 
    {
       int iFd = -1;
       int  iLen = 0;
       if (_pName == NULL)
      {
         return -1;
      }
      iFd = open(_pName, O_RDONLY);
      if (iFd >= 0)
      {
         iLen = lseek(iFd, 0, SEEK_END); 
         close(iFd);
        return iLen;
      }
     
     return iFd;
    } 



    2、fseek+ftell:特别注意文件指针的位置

    代码片段

    long   GetFileSize(char *_pName )  
       {  
          long  length;
    
    FILE *fp;
    
    fp = fopen("_pName ",rw);
    
    if(fp==NULL)
    
    return -1;
    
           fseek(fp,   0L,   SEEK_END);  
           length   =   ftell(fp);
    
    return length;
    }



    第二类:stat、fstat函数族

    函数原型:

    int stat(char *filename,struct stat *s);

    int fstat(int fd,struct stat *s);

    代码片段:以stat为例,fstat只是第一个参数用文件描述符。

    #include <unstd.h>
    
    #include <sys/stat.h>
    
    int GetFileLen( char *_pName )
    
    {
    
        struct stat st;
    
        stat(_pName, &st);
    
        return st.st_size;
    
    }


  • 相关阅读:
    责任
    人生
    有感
    冲突无处不在
    中科院玉泉路攻略——吃篇(校外)
    兄弟
    (18)[转载]:跳台阶问题
    Excel表格加下列选择框
    (转载)(c#)数据结构与算法分析 数组、向量和表
    [转载] 趣味算法:字符串反转的N种方法
  • 原文地址:https://www.cnblogs.com/jeakon/p/2816814.html
Copyright © 2011-2022 走看看