zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    8款最新CSS3表单 环形表单很酷
    8款给力HTML5/CSS3应用插件 可爱的HTML5笑脸
    分享10款效果惊艳的HTML5图片特效
    9款极具创意的HTML5/CSS3进度条动画
    分享9款最新超酷HTML5/CSS3应用插件
    7款HTML5精美应用教程 让你立即爱上HTML5
    (转)整理 node-sass 安装失败的原因及解决办法
    分析Vue框架源码心得
    Vue中的render函数随笔
    微信小程序商业级实战
  • 原文地址:https://www.cnblogs.com/20179203li/p/7674479.html
Copyright © 2011-2022 走看看