全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

C语言获取文件长度的两种方法

时间:2023-10-10 16:15

人气:

作者:admin

标签: C语言 

导读:C语言中没有直接获取文件长度的接口,但是我们可以使用标准库提供的函数来间接的获取文件长度。这里提供两种方法。...

C语言中没有直接获取文件长度的接口,但是我们可以使用标准库提供的函数来间接的获取文件长度。这里提供两种方法。

使用C标准库获取文件长度

不论你使用的是哪个操作系统,只要该操作系统支持C标准库,那么就可以通过下述代码获取文件长度:

#include

/**
*@brief获取文件长度
*
*@paramfile_name文件名(包含路径)
*
*@return-1:获取文件长度失败其他值:文件长度
*
*@version
*1,2023-08-09,AilsonJack,Createdfunction
*/
longget_file_len(constchar*file_name)
{
FILE*filep;
longlen;

//打开文件
filep=fopen(file_name,"rb");
if(filep==NULL)
{
printf("fopen%sfailed!
",file_name);
return-1;
}

//移动文件指针到文件末尾
fseek(filep,0,SEEK_END);

//获取文件长度
len=ftell(filep);

//关闭文件
fclose(filep);

returnlen;
}

使用C标准库获取文件长度的测试结果如下图所示:

fee54b1c-6743-11ee-939d-92fbcf53809c.png

Snipaste_2023-09-23_10-00-18

使用Linux的系统调用获取文件长度

在Linux操作系统下,可以使用stat函数来获取文件信息,其中st_size字段表示文件的长度,代码如下所示:

#include
#include

/**
*@brief获取文件长度
*
*@paramfile_name文件名(包含路径)
*
*@return-1:获取文件长度失败其他值:文件长度
*
*@version
*1,2023-08-09,AilsonJack,Createdfunction
*/
longget_file_len(constchar*file_name)
{
structstatst;

//获取文件信息
if(stat(file_name,&st)==-1)
{
perror("无法获取文件信息");
return-1;
}

//检查文件类型
if(!S_ISREG(st.st_mode))
{
printf("%s不是一个常规文件!
",file_name);
return-1;
}

returnst.st_size;
}






审核编辑:刘清
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信