一、准备工作

首先在编程之前遇到的第一个问题就是要了解需要编出一个怎样的代码,了解od -tx -tc的具体意思,并观察其输出结果.
-tc代表着输出ASCII字符,而-tx则是代表着输出ASCII字符所对应的16进制数字,-tx后面一般会跟数字,代表着输出字节数.

二、问题及解决方法

问题1:

题目中明确要求用myod XXXX实现这一功能,开始的程序我是通过写入文件名然后读取文件的,和题目要求略不符合。

解决1:

通过查阅资料我了解到了open函数的使用,以及int main(int argc,int argv[])的使用,这都是之前编程中很少接触到的,argc是命令行总的参数个数 ,argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数.用好这两个变量就可以使用命令行后面跟的用户输入的参数,也就可以按照上面的样式获取文件路径.而open函数则是linux中非常方便的按照给定路径打开文件的函数.

就像图中的那样,设置参数为O_RDONLY只读模式,但是要注意open的特别头文件:#include <sys/types.h>、#include<sys/stat.h>、#include<fcntl.h>、#include<unistd.h>。

至于编程的其他方面相对顺利,没有什么问题,除了刚刚已经展示出来的主函数外,还有一个myod.c文件,以及一个head.h的头文件,分别如下:


程序运行的展示:

基本与od功能相同

问题2:

第二个问题出现在makefile时,上网查询发现写makefile文件需要在语句前加上[Tab],但是在make时还是会报错:

解决2:

makefile的编写语句前确实需要[Tab],但是只有在动作行才加,而目标行不加,也就是说应当是这样的效果:

这样就可以成功执行make。

三、还未完成的问题

最后有一个还未完成的项目,od实际上并不仅仅只有这几个功能,通过man od我们可以看到od还有许多功能,就单说od -tx的功能我就没有完全实现,毕竟后面的数字不同可以输出不同的字节数,而当前程序只能输出一字节,而且od -tc -tx与od -tx -tc输出的顺序也不相同,而我的程序目前输出顺序固定,这都是接下来需要完善的地方。
myod以及makefile的全部代码在:https://gitee.com/PuPuTongTong/myod-makrfile/tree/master

myod中遇到的问题的更多相关文章

  1. MyOD-Linux od命令的实现

    MyOD 一.设计思路 确定MyOD的要求 根据需求可知MyOD需要实现类似Linux下 od -tx -tc XXX的功能,于是先去网上查找了一下od命令的-tx以及-tc参数的作用,经查找后了解到 ...

  2. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  3. 20155215 第二周测试1 与 myod

    课堂测试 第一题 每个.c一个文件,每个 .h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc编译通过 在Vi中使用K查找printf的帮助文档 提交vi编辑过程截图,要全屏,包含自 ...

  4. 20155306 2017-2018-1《信息安全系统设计》第二周课堂测试以及myod的实现

    20155306 2017-2018-1<信息安全系统设计>第二周课堂测试以及myod的实现 第二周课堂测验: (注:前两项在课堂已提交,在此不做详解) 第一项: 每个.c一个文件,每个. ...

  5. 20175208 张家华 MyOD

    一.实现目的: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 二.功能简介 1.Linux下的od功能是将指定文件内容以八进制.十进制.十六进 ...

  6. 20175314薛勐 MyOD(课下作业,选做)

    MyOD(课下作业,选做) 要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 思路 伪代码: 读取命令行输入的参数(文件名) 以16为每个字 ...

  7. MyOD 代码实现

    MyOD的代码实现 一.题目要求: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 二.设计思路 OD命令详解: 因此,该题目所要实现的功能为以 ...

  8. 课后选做题:MyOD

    目录 OD命令了解 MyOD实现 OD命令了解 作用:od命令用于输出文件的八进制.十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符.常见的文件为文本文件和二进制文件.此 ...

  9. 实现mypwd&mybash&myod&读者写者

    目录: 一.mypwd 二.mybash 三.myod 四.读者.写者 一.实现mypwd 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试m ...

随机推荐

  1. centos7.0 安装pdo_mysql扩展

    1:进入到源码包 /usr/local/php-7.1.6/ext/pdo_mysql 执行/usr/local/php-7.1/bin/phpize 如果报如下错误: Cannot find aut ...

  2. USB-HID鼠标、键盘通讯格式(转) 与本人实际测试结果

    内容为网络转载,如有版权问题请联系删除 USB鼠标键盘协议介绍. 鼠标发送给PC的数据每次4个字节:BYTE1 BYTE2 BYTE3 BYTE4.定义分别是:BYTE1 -- |--bit7:    ...

  3. ubuntu问题: 同时只能有一个软件管理工具在运行

    或者是: 只能同时运行一个更新管理器 打开终端输入命令:sudo dpkg –configure -a 运行,系统问题就解决了

  4. Mysql 学习1

      Mysql学习   一.数据库   1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先: 可存储大量数据: 方便检索: 保持数据的一致性.完整 ...

  5. GitHub提示 Error: Key already in use解决办法

    GitHub提示 Error: Key already in use解决办法GitHub提示 Error: Key already in use解决办法2014年09月05日 ⁄ 综合 ⁄ 共 290 ...

  6. CONVERT_DATE_INPUT

    [转自http://www.cnblogs.com/VerySky/articles/2226862.html] 通过 Function Module 将外部日期转换为内部日期所属 Function ...

  7. Windows平台下搭建Git服务器的图文教程(转发)

    Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...

  8. Windows磁盘MBR结构详解

    在之前的文章 Windows存储管理之磁盘结构详解 中介绍了Windows的磁盘结构和MBR.本文将对Windows Basic Disk中的MBR的结构进行介绍,帮助读者更好的了解Windows系统 ...

  9. Django模型系统——ORM中跨表、聚合、分组、F、Q

    核心知识点: 1.明白表之间的关系 2.根据关联字段确定正反向,选择一种方式 在Django的ORM种,查询既可以通过查询的方向分为正向查询和反向查询,也可以通过不同的对象分为对象查询和Queryse ...

  10. dev系列之gridview

    gridview新增一行就激活编辑,及显示闪动的光标 gridView1.ShowEditor(); 隐藏Gridview表头上面的panel this.gridView1.OptionsView.S ...