码迷,mamicode.com
首页 > 移动开发 > 详细

csapp-week1-task-optional-Myod

时间:2020-10-12 20:00:42      阅读:29      评论:0      收藏:0      [点我收藏+]

标签:fread   遇到   思考   optional   code   就是   应该   asc   8进制   

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的具体参数所以本身并不难,关键就在对于语言是否熟练,熟练就做的快,不熟练就慢

csapp-week1-task-optional-Myod

标签:fread   遇到   思考   optional   code   就是   应该   asc   8进制   

原文地址:https://www.cnblogs.com/tanjie200/p/13800502.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!