功能描述
-
有个一个C 语言的数组,比如把一个二进制文件 dump 成一个 C语言的数组,然后输出到开发板的串口终端,想再把这个二进制的C 语言数组复制到电脑上,写为二进制文件。
-
二进制的C 语言的数组:使用
0x00~0xFF
表示的数组,格式如下:
unsigned char buf_0xa0000000_512[] = {
0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x05, 0x00, 0xa0,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x58, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xa0,
0x64, 0x6f, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x2c, 0x20, 0x64, 0x65,
0x62, 0x75, 0x67, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x20,
0x3d, 0x20, 0x30, 0x78, 0x61, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2c, 0x20, 0x64, 0x65,
0x62, 0x75, 0x67, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74,
0x68, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x30, 0x2c, 0x20, 0x64, 0x65, 0x62, 0x75,
0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x33, 0x0a, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xa0, 0x20, 0x01, 0x00, 0xa0,
0x64, 0x6f, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x2c, 0x20, 0x73, 0x68
};
目标
-
把C 语言的二进制 数组写为二进制的文件
-
由于数组的每个值,如
0x6e
,就表示二进制的一个字符,所以数组的内容不需要任何的格式转换,直接存储到文件即可。 -
为何有这么个需求?一般嵌入式硬件开发板中,没有很好的导出文件的方法,当然可以尝试使用
YModem
之类的串口终端传输文件,如果没有这些工具,则把开发板中的文件导出来,比较的繁琐。 -
当前的思路是:把开发板的二进制文件, dump 拼接为成一个 C 语言的数组,再把这个 C语言的数组复制出来,写成文件。
相关代码
-
由于思路比较简单,所以操作起来也不难,就是创建文件,写文件而已。
-
C语言的字符数组(二进制数组),可以直接写入到文件,当然 dump C 语言数组时,留意 内存的大小端即可
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
unsigned char buf_0xa0000000_512[] = {
0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x05, 0x00, 0xa0,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x58, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xa0,
0x64, 0x6f, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x2c, 0x20, 0x64, 0x65,
0x62, 0x75, 0x67, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x20,
0x3d, 0x20, 0x30, 0x78, 0x61, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2c, 0x20, 0x64, 0x65,
0x62, 0x75, 0x67, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74,
0x68, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x30, 0x2c, 0x20, 0x64, 0x65, 0x62, 0x75,
0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x33, 0x0a, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xa0, 0x20, 0x01, 0x00, 0xa0,
0x64, 0x6f, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x2c, 0x20, 0x73, 0x68,
0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x39, 0x61,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2c, 0x20, 0x6d, 0x6d, 0x69, 0x6f, 0x5f, 0x62, 0x61, 0x73,
0x65, 0x3a, 0x20, 0x30, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63,
0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x20, 0x2d, 0x31, 0x0a, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xa0, 0xa0, 0x01, 0x00, 0xa0,
0x64, 0x6f, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x3a, 0x20, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x72, 0x71, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x20,
0x33, 0x2c, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x72, 0x71, 0x5f, 0x6f, 0x66,
0x66, 0x73, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
0x5f, 0x69, 0x72, 0x71, 0x5f, 0x62, 0x69, 0x74, 0x20, 0x3d, 0x20, 0x33, 0x2c, 0x20, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x72, 0x71, 0x20, 0x3d, 0x20, 0x34, 0x0a, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0xa0, 0x00, 0x02, 0x00, 0xa0,
0x64, 0x6f, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x3a, 0x20, 0x68, 0x6f,
0x73, 0x74, 0x5f, 0x69, 0x72, 0x71, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x33, 0x2c,
0x20, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x72, 0x71, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x72, 0x71, 0x5f, 0x62,
0x69, 0x74, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0xa0, 0x60, 0x02, 0x00, 0xa0,
0x68, 0x6f, 0x73, 0x74, 0x2f, 0x64, 0x73, 0x70, 0x20, 0x61, 0x64, 0x64, 0x72, 0x3a, 0x20, 0x30,
0x78, 0x38, 0x66, 0x66, 0x30, 0x30, 0x30, 0x63, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x66,
0x30, 0x30, 0x32, 0x38, 0x30, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa0, 0xc0, 0x02, 0x00, 0xa0,
0x78, 0x72, 0x70, 0x5f, 0x69, 0x72, 0x71, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x2c,
0x20, 0x30, 0x78, 0x33, 0x33, 0x31, 0x30, 0x32, 0x61, 0x32, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38,
0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0xa0, 0x20, 0x03, 0x00, 0xa0,
0x78, 0x72, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x72,
0x71, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x33, 0x31, 0x30, 0x32, 0x61, 0x30, 0x63, 0x2c, 0x20, 0x30,
0x78, 0x34, 0x30, 0x30, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0xc0, 0x02, 0x00, 0xa0, 0x80, 0x03, 0x00, 0xa0,
0x5b, 0x56, 0x43, 0x44, 0x5d, 0x20, 0x64, 0x6f, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61,
0x6b, 0x65, 0x3a, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00, 0xa0, 0xe0, 0x03, 0x00, 0xa0,
0x1b, 0x5b, 0x33, 0x36, 0x3b, 0x32, 0x32, 0x6d, 0x49, 0x2f, 0x62, 0x73, 0x74, 0x2d, 0x63, 0x76,
0x20, 0x20, 0x20, 0x5b, 0x74, 0x69, 0x63, 0x6b, 0x3a, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
0x30, 0x32, 0x31, 0x5d, 0x20, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x42, 0x53, 0x54, 0x20, 0x43,
0x56, 0x21, 0x1b, 0x5b, 0x30, 0x6d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x09, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xa0, 0x40, 0x04, 0x00, 0xa0,
0x78, 0x72, 0x70, 0x5f, 0x69, 0x72, 0x71, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x2c,
0x20, 0x30, 0x78, 0x33, 0x33, 0x31, 0x30, 0x32, 0x61, 0x32, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38,
0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0xa0, 0xa0, 0x04, 0x00, 0xa0,
0x72, 0x75, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x70,
0x3a, 0x20, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x0b, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0xa0, 0x00, 0x05, 0x00, 0xa0,
0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20,
0x38, 0x39, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x61, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00, 0xa0, 0x04, 0x00, 0xa0, 0x60, 0x05, 0x00, 0xa0,
0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20,
0x38, 0x39, 0x31, 0x2c, 0x20, 0x36, 0x34, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x52, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xa0, 0xc0, 0x05, 0x00, 0xa0,
0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20,
0x39, 0x30, 0x33, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x05, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
int main()
{
int fd = open("file.bin",O_WRONLY | O_CREAT, 0600);
if (fd < 0)
{
printf("create file error, fd = %d\n", fd);
}
printf("fd=%d\n",fd);
write(fd,buf_0xa0000000_512, sizeof(buf_0xa0000000_512));
close(fd);
return 0;
}
编译与运行
-
在 Linux 平台 如 ubuntu 上,使用 gcc 进行编译
-
编译方法:
$ gcc log_write.c -o log_write
-
运行方法:
$ ./log_write
,运行后查看一下,发现生成了相应的二进制的文件 -
可以使用二进制的工具软件查看生成的二进制文件内容
-
验证发现可以把C 语言数组 正常的写入到文件
小结
-
文件的一些操作在Linux C 语言下其实不复杂,一般是
open write close
的 文件 posix API 的操作 -
打开一个文件, read 出来的内容,其实就是 二进制的字符数组
-
可以通过把二进制文件的每个字节,转换成 十六进制表示,如
3
->0x30
,这样可以做到在没有文件传输方式的情况下,把二进制文件通过数组的方式,一点点捞出来。