20181324 谭杰 Myod完成
1.任务内容
1 复习c文件处理内容
2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
3. main与其他分开,制作静态库和动态库
4. 编写Makefile
5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
6 在博客园发表一篇博客,重点写遇到的问题和解决过程
2.过程
1.了解od命令,开始不懂左边一列是什么意思,然后在网上查了后,左边一列是地址,这地址是什么呢?想了半天发现,这就是字符数,只不过用8进制表示,地址就是这一行之前显示了的字符数,最后加一个文件的总字符数。也发现了一些以往学长学姐的博客,我觉得有一个博客说的对,实现应该是od -tx1 -tc xxx命令,因为这一条是字符和16进制ASCII码对应的比较好对照
2.复习C语言文件操作,先考虑的是fread(),感觉不行,无法获得准确的所有字符个数,然后使用fgetc(),代码该队之后,发现两者都可以。fread()可以按照一个char一个块读,而fgetc需要使用循环
3.调试,不懂如何对加了main函数参数的程序用调式器调试,然后就一点一点根据输出调试,找到错误原因,使用的两层循环,第一层是行数,第二层是输出一行16进制和一行字符,我把s[i*16+j]写为了s[i+16*j],所以一直不对,直到想到根据输出信息进行调试才把程序改对
3.过程的一点截图
直接、动态库、静态库生成可执行文件运行截图
makefile截图
od命令执行截图
4.思考
这个任务因为给定了od的具体参数所以本身并不难,关键就在对于语言是否熟练,熟练就做的快,不熟练就慢