c写个linux的小程序,从bin文件中读取数据,打印结构体中的成员变量。
2013-07-17 21:11
633 查看
最近实习接触到一个任务,这个任务的需求是:
写个linux的小程序,当输入参数-t时,打印当前时间;当输入参数-f时,则打印出头文件中的所有结构体。
我手中有的材料是:
一个头文件,头文件中定义了很多结构体,结构体中还有结构体变量,总共三层。
刚开始接触到这个任务的时候,一头雾水,本身c语言就不熟,更何况在linux下编程,非常慌张。上网很久,也在CSDN和百度上发了求助帖,浪费了很多积分,最后也没有获得什么满意的答复。但是这个学习和搜索的过程也是非常幸福的。查了很多资料后,才渐渐有了思路。我想了想这个问题可以分为三个小部分。
1、当输入参数-t, -f时。。。。这个条件如何控制?
2、bin文件中的数据和头文件中的结构体变量时怎样关联的?我怎么利用bin文件的数据对头文件中的结构体成员变量进行初始化?
3、完成初始化工作后,我怎么将结构体中的数据进行打印?
由于公司保密原因,所以只贴出部分代码。通过下面的步骤就已经对大的结构体A进行了初始化了。
至于打印,贴出一个函数,这个函数的使用非常方便,只需要传入要打印结构体的结构体指针和结构体大小,就可以进行打印,且可以控制一行打印的字节数和字节与字节之间是否需要留一个空格。
我想重要的两个地方的代码我都贴了出来,大家可以借鉴借鉴,以免多走弯路。欢迎留言交流。
写个linux的小程序,当输入参数-t时,打印当前时间;当输入参数-f时,则打印出头文件中的所有结构体。
我手中有的材料是:
一个头文件,头文件中定义了很多结构体,结构体中还有结构体变量,总共三层。
刚开始接触到这个任务的时候,一头雾水,本身c语言就不熟,更何况在linux下编程,非常慌张。上网很久,也在CSDN和百度上发了求助帖,浪费了很多积分,最后也没有获得什么满意的答复。但是这个学习和搜索的过程也是非常幸福的。查了很多资料后,才渐渐有了思路。我想了想这个问题可以分为三个小部分。
1、当输入参数-t, -f时。。。。这个条件如何控制?
2、bin文件中的数据和头文件中的结构体变量时怎样关联的?我怎么利用bin文件的数据对头文件中的结构体成员变量进行初始化?
3、完成初始化工作后,我怎么将结构体中的数据进行打印?
由于公司保密原因,所以只贴出部分代码。通过下面的步骤就已经对大的结构体A进行了初始化了。
FILE *file; A *p1=new A; int sizeread=sizeof(_ASA_TEST_PACKAGE); int buf[250]; fopen_s(&file,"core_pass2.txt","rb"); //以二进制的方式打开文件 if (file==NULL) { printf( "The file was not opened\n" ); } fread(buf,1,sizeread,file); p1=(A*)buf;
至于打印,贴出一个函数,这个函数的使用非常方便,只需要传入要打印结构体的结构体指针和结构体大小,就可以进行打印,且可以控制一行打印的字节数和字节与字节之间是否需要留一个空格。
void print_struct_content(void *strp, size_t size) { size_t i; char *printbit=(char *)strp; int formatter=0; for (i=0; i<size; i++) { printf("%02X",printbit[i]&0XFF); formatter++; if ((formatter%4)==0) { printf("\n"); } } }
我想重要的两个地方的代码我都贴了出来,大家可以借鉴借鉴,以免多走弯路。欢迎留言交流。
相关文章推荐
- 从文件中读取结构体变量的数据读取和写入结构体数据到文件
- 读取ini配置文件时,成员变量的内存数据被隐式修改了
- 税务催缴催报信息打印程序开发-Delphi读取Excel文件及操作
- ldd命令_Linux ldd 命令用法详解:打印程序或者库文件所依赖的共享库列表
- Java读取txt文件中的数据赋给String变量方法
- 例子程序1:读取文件内容并打印到屏幕上
- 第五周 【项目2 - 对象作为数据成员】和【项目3-用多文件组织多个类的程序】
- linux从文件中取出指定行指定列的数据并赋给变量
- Linux下程序启动之后的初始化---检查配置文件及读取日志配置项的值
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符。
- 编写一个程序,从标准输入一行一行地读取文本,并完成如下任务:如果文件中有两行或更多行相邻的文本内容相同,那么就打印其中一行,其余行不打印。
- 《程序实现》从xml、txt文件里读取数据写入excel表格
- 将文件中的数据读取,打印到控制台
- 自定义变量不能用怎么办,将文件中的数据直接读取到普通变量中
- c/c++中怎样将结构体成员数据存储到文件中,并读出来
- [零碎知识]arm-linux程序反编译bin文件成汇编的指令
- vc2008: 控制台程序将数据写入MySql(数据库信息从配置文件读取)
- 从txt文件中读取这两个值分别放入相应的变量中,假如有二个数据:50 100
- 通过java程序读取文件xml中的数据
- [Linux文件]使用read函数从文件读取数据的实例