当前位置: 首页 > ai >正文

基于C语言实现文件读取

1 C语言实现文件读取

/*** @brief 读取文件** @param file_path 文件及其路径名* @param read_buff 读取buff指针* @param buff_len buff长度* @return int 0:读取成功 -1:打开文件失败 -2:文件大小超出buff允许大小 -3:读取文件失败*/
int read_file(char *file_path, u8 *read_buff, u32 buff_len)
{FILE *file;long file_size;file = fopen(file_path, "rb+"); // 以只读方式(注意:必须是2进制方式,否则读取有误)打开文件if (file == NULL){printf("open file %s fail.\r\n", file_path);return -1;}fseek(file, 0, SEEK_END); // 将文件指针移动到文件末尾处file_size = ftell(file);  // 获取文件大小if (file_size > (buff_len - 1)){printf("file size %d Byte > buff_len - 1(%d Byte).\r\n", file_size, buff_len - 1);fclose(file);return -2;}fseek(file, 0, SEEK_SET);                              // 将文件指针移动到文件开始处if (fread(read_buff, 1, file_size, file) != file_size) // 读取文件{printf("read file fail.\r\n");fclose(file);return -3;}read_buff[file_size] = 0x0; // 末尾添0fclose(file);return 0;
}

2 功能测试

新建1个名为file.txt的文本文件,里面随机写入一些数字及英文:
在这里插入图片描述
测试代码如下:

int main(void)
{u8 read_buff[10240];read_file("file.txt", read_buff, sizeof(read_buff));printf("%s", read_buff);return 0;
}

读取file.txt文件内容到read_buff数组,然后将read_buff数组内容以字符串形式打印出来。
将打印结果复制粘贴到另一个文本文件,使用比较工具比较2个文件内容是否一致:
在这里插入图片描述
可以看到,2个文件内容一致,说明读取文件函数read_file功能正常。

http://www.xdnf.cn/news/492.html

相关文章:

  • Linux 第五讲 --- 权限管理
  • 6.常用控件-QWidget|windowTitle|windowIcon|qrc机制|windowOpacity|cursor(C++)
  • Amlogic S905L3 系列对比:L3A、L3B 与 L3AB 深度解析
  • Unity之如何实现RenderStreaming视频推流
  • 大学英语四级选词填空阅读题和段落匹配解析
  • 【Hot100】54. 螺旋矩阵
  • 2025.04.19-阿里淘天春招算法岗笔试-第一题
  • 金融数学专题6 证券问题与资本利得税
  • Pandas数据统计分析
  • MCS-51单片机汇编语言编程指南
  • ArcPy Mapping 模块基础
  • 3. 进程概念
  • 修改Theme SHELL美化panel
  • Docker 网络详解:从 docker0 网桥到网络命名空间
  • 复习JUC的总结笔记
  • 整流二极管详解:原理、作用、应用与选型要点
  • 什么是零缺陷质量管理?
  • DNS主从同步实验
  • LeetCode 解题思路 42(Hot 100)
  • DDPM(diffusion)原理
  • 健康养生:拥抱美好生活的基石
  • LangChain框架-检索器详解
  • Map和Set相关练习
  • c++_csp-j算法 (2)
  • Vue中的template配置项
  • Kafka下载和使用(Windows版)
  • docker 大模型
  • 【数学】勾股定理
  • 速查手册:TA-Lib 超过150种量化技术指标计算全解 - 2. Momentum Indicators(动量指标)
  • 编译报错 宏 _IOC_SIZEBITS,而这个宏在编译时未定义