• Myod实验 20181328祝维卿


    目录

    一、任务要求

    二、准备阶段

    三、OD命令了解

    四、代码实现

    4.1初始设置       

                         4.2静态库

                         4.3动态库

                         4.4Makefile

    五、实验详情

    一、任务要求
     
    1 复习c文件处理内容

    2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能

    3. main与其他分开,制作静态库和动态库

    4. 编写Makefile

    5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息

    6 在博客园发表一篇博客,重点写遇到的问题和解决过程
     
    二、准备阶段
    • 借助之前的学习复习熟悉文件语法的运用
    • 二进制与十进制间的相互转化,借由网络资源了解到Integer.parseInt语句不仅可以实现字符到数的转化,还可以借由此语句进行其他进制到十进制的直接转化赋值
    三、OD命令了解
    • 作用:od命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无二义性的解释。不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。

    • 命令od <选项><参数> <文件名>

    • 选项

    -a:此参数的效果和同时指定“-ta”参数相同;

    -A:<字码基数>:选择以何种基数计算字码;

    -b:此参数的效果和同时指定“-toC”参数相同;

    -c:此参数的效果和同时指定“-tC”参数相同;

     
    四、代码实现
    myod.c
    #include "head.h"
    #include <stdio.h>
    void main()
    { 
      char name[50];
      printf("please input the txtname:");
      scanf("%s",name);
      ascii(name);
      hex(name);
    }

    ascii.c

    #include "head.h"
    #include <stdio.h>
    void ascii(char *name)
    {
          FILE *fp;
          char ch;
          fp=fopen(name,"r");
          ch=fgetc(fp);
          printf("output the ascii:\n");
    
      while(ch!=EOF)
      {
         if(ch=='\n')
            printf("\n");
         else
            printf("%4d",ch);
            ch=fgetc(fp);
      }
      fclose(fp);
    
    }

    hex.c

    #include "head.h"
    #include <stdio.h>
    void hex(char *name)
    {
      FILE *fp;
      char ch;
      printf("output the hex:\n");
      fp=fopen(name,"r");
      ch=fgetc(fp);
      while(ch!=EOF)
      {
        if(ch=='\n')
        printf("\n");
        else
        printf("%4x",ch);
        ch=fgetc(fp);
       }
       fclose(fp);
    }

    head.h

    void hex(char *name);
    void ascii(char *name);

    五、实验详情

    1.用myod XXX实现Linux下od -tx -tc XXX的功能
    只需要输入gcc *.c即可编译成功,新建一个记事本test.txt,里面输入一些随机的东西

    2.用静态库
    将.o文件生成静态库后,gcc即可

    gcc -c ascii.c -o ascii.o
    gcc -c hex.c -o hex.o
    ar cr myod.a *.o
    gcc -o myod myod.c -L. myod.a

    3.用动态库
    对ascii.c和hex.c制作动态库,然后gcc编译即可

    4.makefile

     
     
  • 相关阅读:
    tcpprep 对IPV6的支持
    the server quit without updating pid file (/var/lib/mysql/localhost.localdomain.pid)
    servlet service() for servlet jsp throws null pointer exception
    tomcat开机启动
    mysql 允许远程访问
    spring的helloworld
    java中的那些坑
    关于struts2中的相对路径与绝对路径
    Powercenter Source Filter
    oracle删除当前用户的表
  • 原文地址:https://www.cnblogs.com/1005zwq/p/13797740.html
Copyright © 2020-2023  润新知