目录
一、任务要求
二、准备阶段
三、OD命令了解
四、代码实现
4.1初始设置4.2静态库
4.3动态库
4.4Makefile
五、实验详情
一、任务要求
1 复习c文件处理内容
2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
3. main与其他分开,制作静态库和动态库
4. 编写Makefile
5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
6 在博客园发表一篇博客,重点写遇到的问题和解决过程
2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
3. main与其他分开,制作静态库和动态库
4. 编写Makefile
5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
6 在博客园发表一篇博客,重点写遇到的问题和解决过程
二、准备阶段
- 借助之前的学习复习熟悉文件语法的运用
- 二进制与十进制间的相互转化,借由网络资源了解到
Integer.parseInt
语句不仅可以实现字符到数的转化,还可以借由此语句进行其他进制到十进制的直接转化赋值
三、OD命令了解
-
作用:od命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无二义性的解释。不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。
-
命令:
od <选项><参数> <文件名>
-
选项:
-a:此参数的效果和同时指定“-ta”参数相同;
-A:<字码基数>:选择以何种基数计算字码;
-b:此参数的效果和同时指定“-toC”参数相同;
-c:此参数的效果和同时指定“-tC”参数相同;
四、代码实现
myod.c
#include "head.h" #include <stdio.h> void main() { char name[50]; printf("please input the txtname:"); scanf("%s",name); ascii(name); hex(name); }
ascii.c
#include "head.h" #include <stdio.h> void ascii(char *name) { FILE *fp; char ch; fp=fopen(name,"r"); ch=fgetc(fp); printf("output the ascii:\n"); while(ch!=EOF) { if(ch=='\n') printf("\n"); else printf("%4d",ch); ch=fgetc(fp); } fclose(fp); }
hex.c
#include "head.h" #include <stdio.h> void hex(char *name) { FILE *fp; char ch; printf("output the hex:\n"); fp=fopen(name,"r"); ch=fgetc(fp); while(ch!=EOF) { if(ch=='\n') printf("\n"); else printf("%4x",ch); ch=fgetc(fp); } fclose(fp); }
head.h