返回首页

Linux下求取文件长度的几种常用方法--李家凯老师

时间:2019-07-06 10:33来源:武汉华嵌 作者:李家凯 点击:
作者:武汉华嵌中心金牌讲师 李家凯 在文件IO的编程过程中,经常会遇到如何求取文件长度的问题,这里,我将工作及教学中积累的一些常用方法写出来与大家分享。 第一类:lseek/f
  

作者:武汉华嵌中心  金牌讲师  李家凯

 

在文件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;

}

 

>>>>>>>>>>>>>>>>>>返回华嵌首页<<<<<<<<<<<<<<<<<<<<

 

 

 

------分隔线----------------------------

  • 李老师
  • 李老师
  • 胡老师
  • 胡老师
合作伙伴
  • 武汉工程大学合作培训机构

  • 国家信息技术紧缺人才培养工程(NITE)

  • ARM公司全球授权培训中心

  • 国内首家Symbian授权培训

  • 微软全球嵌入式合作伙伴

  • Altera全球合作培训机构

在线客服
  • 客服热线:
    139-8620-3604
    159-2752-9536



  • 官方微信
  •  咨询微信二维码