写一个可以将由TLV构成的bin文件转换成c数组的C语言
时间: 2023-05-31 09:04:00 浏览: 117
BIN文件转C数组工具
4星 · 用户满意度95%
代码
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_FILE_SIZE 1024
int main(int argc, char *argv[]) {
FILE *fp;
char filename[100];
unsigned char buffer[MAX_FILE_SIZE];
unsigned char *p;
int size, i;
if (argc != 2) {
printf("Usage: %s <filename>\n", argv[0]);
return 1;
}
sprintf(filename, "%s", argv[1]);
fp = fopen(filename, "rb");
if (fp == NULL) {
printf("Cannot open file %s\n", filename);
return 1;
}
size = fread(buffer, 1, MAX_FILE_SIZE, fp);
fclose(fp);
printf("unsigned char tlv[%d] = {\n", size);
printf(" ");
p = buffer;
for (i = 0; i < size; i++) {
printf("0x%02X", *p++);
if (i < size - 1) {
printf(", ");
if ((i + 1) % 16 == 0) {
printf("\n ");
}
}
}
printf("\n};\n");
return 0;
}
```
使用方法
将上述代码保存为一个.c文件,然后使用gcc编译生成可执行文件,如下所示:
```
gcc -o bin2c bin2c.c
```
然后使用以下命令将bin文件转换为c数组:
```
./bin2c input.bin > output.c
```
其中,input.bin为需要转换的bin文件名,output.c为输出的C语言文件名。执行完上述命令后,将会在当前目录下生成一个output.c文件,该文件中包含了一个名为tlv的unsigned char数组,该数组的内容即为input.bin文件的内容。可以将该数组直接复制到C语言程序中使用。
阅读全文