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;
    
    }


  • 相关阅读:
    洛谷 P2958 [USACO09OCT]木瓜的丛林Papaya Jungle
    洛谷 P1400 塔
    10-2 集合之List
    主从数据库
    【单元测试】
    Pen Editor
    appendGrid
    动画
    JavaScript框架设计 第14章 动画引擎
    >>>
  • 原文地址:https://www.cnblogs.com/jeakon/p/2816814.html
Copyright © 2011-2022 走看看