c语言中没有直接获取文件长度的接口,但是我们可以使用标准库提供的函数来间接的获取文件长度。这里提供两种方法。
使用c标准库获取文件长度
不论你使用的是哪个操作系统,只要该操作系统支持c标准库,那么就可以通过下述代码获取文件长度:
#include /** * @brief 获取文件长度 * * @param file_name 文件名(包含路径) * * @return -1:获取文件长度失败 其他值:文件长度 * * @version * 1, 2023-08-09, ailsonjack, created function */long get_file_len(const char *file_name){ file *filep; long len; // 打开文件 filep = fopen(file_name, rb); if (filep == null) { printf(fopen %s failed!, file_name); return -1; } // 移动文件指针到文件末尾 fseek(filep, 0, seek_end); // 获取文件长度 len = ftell(filep); // 关闭文件 fclose(filep); return len;}
使用c标准库获取文件长度的测试结果如下图所示:
snipaste_2023-09-23_10-00-18
使用linux的系统调用获取文件长度
在linux操作系统下,可以使用stat函数来获取文件信息,其中st_size字段表示文件的长度,代码如下所示:
#include #include /** * @brief 获取文件长度 * * @param file_name 文件名(包含路径) * * @return -1:获取文件长度失败 其他值:文件长度 * * @version * 1, 2023-08-09, ailsonjack, created function */long get_file_len(const char *file_name){ struct stat st; // 获取文件信息 if (stat(file_name, &st) == -1) { perror(无法获取文件信息); return -1; } // 检查文件类型 if (!s_isreg(st.st_mode)) { printf(%s 不是一个常规文件!, file_name); return -1; } return st.st_size;}
谷歌快递无人机Wing在澳大利亚获得快递资质,历经18个月试飞已完成3000单包裹寄送
气保焊如何实现焊缝跟踪
SPI传输原理 SPI传输机制
飞凌嵌入式亮相CACLP 2022,让医疗设备更智能
国内外的区块链应用进展和发展趋势比较分析
C语言获取文件长度的两种方法
桥田智能推出创新产品电极帽整形机 大幅提升电极帽寿命和焊接质量
配电网的电压等级如何确定
什么是光模块,都有哪些类型和作用
能源产业与互联网的结合,将带来怎样的发展?
千元神器OPPO K1火拼VIVO Z3,你更心仪哪一款呢?
315苏宁全民焕新节官宣“三新计划”
TinySwitch?II系列微型单片开关电源的应用
基于云里物里MTag电子价签功能及云平台的功能及问题解决
光电传感器在智能立体车库中的应用介绍
多旋翼无人机的飞行原理是什么详细讲解
物联网赋予了机器人什么功能
日产尼桑黑科技----把一件事从头做到尾
固态继电器的接线方法 固态继电器的优点及缺点
新西兰利用无人机治理鼠害,成本大幅度降低