myod中遇到的问题
一、准备工作
首先在编程之前遇到的第一个问题就是要了解需要编出一个怎样的代码,了解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中遇到的问题的更多相关文章
- MyOD-Linux od命令的实现
MyOD 一.设计思路 确定MyOD的要求 根据需求可知MyOD需要实现类似Linux下 od -tx -tc XXX的功能,于是先去网上查找了一下od命令的-tx以及-tc参数的作用,经查找后了解到 ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- 20155215 第二周测试1 与 myod
课堂测试 第一题 每个.c一个文件,每个 .h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc编译通过 在Vi中使用K查找printf的帮助文档 提交vi编辑过程截图,要全屏,包含自 ...
- 20155306 2017-2018-1《信息安全系统设计》第二周课堂测试以及myod的实现
20155306 2017-2018-1<信息安全系统设计>第二周课堂测试以及myod的实现 第二周课堂测验: (注:前两项在课堂已提交,在此不做详解) 第一项: 每个.c一个文件,每个. ...
- 20175208 张家华 MyOD
一.实现目的: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 二.功能简介 1.Linux下的od功能是将指定文件内容以八进制.十进制.十六进 ...
- 20175314薛勐 MyOD(课下作业,选做)
MyOD(课下作业,选做) 要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 思路 伪代码: 读取命令行输入的参数(文件名) 以16为每个字 ...
- MyOD 代码实现
MyOD的代码实现 一.题目要求: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 二.设计思路 OD命令详解: 因此,该题目所要实现的功能为以 ...
- 课后选做题:MyOD
目录 OD命令了解 MyOD实现 OD命令了解 作用:od命令用于输出文件的八进制.十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符.常见的文件为文本文件和二进制文件.此 ...
- 实现mypwd&mybash&myod&读者写者
目录: 一.mypwd 二.mybash 三.myod 四.读者.写者 一.实现mypwd 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试m ...
随机推荐
- pycharm中不能安装bs4的解决方案
首先:什么Beautiful Soup? Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.B ...
- Centos 6 安装 python2.7 和 pip
一.安装 python2.7 [root@crazy-acong ~]# cd /data/tools/ [root@crazy-acong tools]# yum groupinstall &quo ...
- 我的Android进阶之旅------>android中getLocationInWindow 和 getLocationOnScreen的区别
View.getLocationInWindow(int[] location) 一个控件在其父窗口中的坐标位置 View.getLocationOnScreen(int[] location) 一个 ...
- Android系统移植与调试之------->如何修改Android设备添加3G上网功能
1.首先先来看一下修改前后的效果对比图 step1.插上3G设备前 step2.插上3G设备后,获取信号中.... step3.插上3G设备后,获取到信号 step4.使用3G信号浏览网页 2.下面讲 ...
- BAPI_SALESORDER_CREATEFROMDAT2 创建退货SO
BAPI_SALESORDER_CREATEFROMDAT2创建退货订单时,会出现以下错误:不允许业务对象 BUS2032 和销售凭证类别 H 的组合. 解决办法: 采用/原BAPI的内嵌BAPI: ...
- 学习Filter
http://www.cnblogs.com/jbelial/archive/2012/07/09/2582638.html Filter 介绍: 它主要用于对用户请求进行预处理,也可以对HttpSe ...
- strstr使用
extern char strstr(char str1, const char *str2); 语法: strstr(str1,str2) str1: 被查找目标 string expression ...
- C#自己写的第一个小程序,庆祝一下
Packages.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; na ...
- Microsoft Office Document Imaging批量ocr 方法
先将pdf文件->导出->tiff文件,生成pdf每页的tiff文件 使用 G:\SoftWare-new\tiff文件合并拆分工具 将一个导出的单个tiff合并为一个tiff文件 再用 ...
- oc中的blocks的功能,一种比代理简洁的方式
blocks方式: 谁要东西谁就要写blocks,通过blocks(返回值)获取想要的,提供东西的人要通过实现函数指针把东西给想要的人.当然也可以传值,传值需要通过形参. block的功能: bloc ...