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

linuxC读取bin文件

目录

    • 前言
    • 一、定义buffer大小
    • 二、实现读取函数
    • 三、头文件

前言

笔记总结将bin文件一次性读取到一个buffer中,然后按一定长度向其它地方进行转移;

一、定义buffer大小

适用k大小级别的文件,嵌入式中常见的配置文件、参数文件等;
假设文件大小为不超过15k;
定义uint8_t buffer[20480],20k大小存储文件;
定义uint8_t buffer_line[512],一次向其它地方转移的数据buffer大小;

二、实现读取函数

void load_binfile(const char *filepath) 
{FILE *fp;size_t bytes_read;int ret = 0;struct stat st;size_t line_size = 0;line_size = sizeof(buffer_line)/sizeof(buffer_line[0]);memset(buffer,0x00,sizeof(buffer)/sizeof(buffer[0]));memset(buffer_line,0x00,sizeof(buffer_line)/sizeof(buffer_line[0]));// 打开文件printf("open filename:%s\n",filepath);fp = fopen(filepath, "rb");if (fp == NULL) {printf("error open file\n");}//get file lenret = stat(filepath, &st);if (ret != 0) {printf("error get file size\n");}printf("File size: %ld bytes\n", st.st_size);//read fileif ( (bytes_read = fread(buffer, 1, st.st_size, fp)) > 0 ){printf("read bytes:%ld\r\n",bytes_read);}uint32_t i;for(i =0;i<(bytes_read/line_size);i++){memcpy((void *)buffer_line,&buffer[i*line_size],line_size);//logfor(uint32_t j=0;j<line_size;j++){//printf("%02X ",buffer_line[j]);}printf("\n");/*对buffer_line进行其它处理*/}memcpy((void *)buffer_line,&buffer[i*line_size],bytes_read%line_size);//logfor(uint32_t j=0;j<bytes_read%line_size;j++){//printf("%02X ",buffer_line[j]);}printf("\n");/*对不满一个buffer_line的数据进行其它处理*/// 关闭文件fclose(fp);
}

三、头文件

#include <stdio.h>
#include <sys/stat.h>
#include <string.h>


http://www.mrgr.cn/news/52340.html

相关文章:

  • Spring 事务支持
  • python 爬虫 入门 一、基础工具
  • Rotary Position Embedding(RoPE)在视觉Transformer中的应用与提升
  • 两个案例全面阐述全链路测试怎么做
  • JAVA封装和包
  • C# 里反射(Reflection)的應用說明
  • 并查集算法
  • 一站式讲解Wireshark网络抓包分析的若干场景、过滤条件及分析方法
  • 深入探索 C++ STL: 高效双向链表 list 的使用与实践
  • 【数据结构】在二叉树中有两个结点m和n,若m是n的祖先,则使用后序遍历可以找到从m到n的路径
  • 兰迪·舍克曼担任生命银行链(LBC)顾问,赋能基因数据技术发展
  • 【C++刷题】力扣-#170-两数之和III-数据结构设计
  • 基础实验4-2.7 修理牧场
  • kernel panic 稳定性分析实例(三)
  • 线性可分支持向量机的原理推导
  • Shell编程-for循环
  • 【存储设备专栏 2.8 -- gio mount -d /dev/sdb1 挂载U盘后查看挂载的目录】
  • 2024年推荐的7个自助建站工具?
  • 深度学习笔记20_数据增强
  • 一文详解 requests 库中 json 参数和 data 参数的用法