20181231兰天奇myod实验

实验要求:

  1. 复习c文件处理内容;

  2. 编写myod.c myod XXX实现Linuxod -tx -tc XXX的功能;

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

  4. 编写Makefile

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

   

实验原理:

od命令

1. 功能

  od命令用于将指定文件内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符。

常见的文件为文本文件和二进制文件。od命令主要用来查看保存在二进制文件中的值,按照指定格式解释文件中的数据并输出。

2. 命令格式

od [<选项><参数>] [<文件名>]

3. 命令选项

-t<TYPE>:指定输出格式,格式包括acdfoux,各含义如下:

  • a:具名字符;
  • cASCII字符或者反斜杠;
  • d[SIZE]:十进制,正负数都包含,SIZE字节组成一个十进制整数;
  • f[SIZE]:浮点,SIZE字节组成一个浮点数;
  • o[SIZE]:八进制,SIZE字节组成一个八进制数;
  • u[SIZE]:无符号十进制,只包含正数,SIZE字节组成一个无符号十进制整数;
  • x[SIZE]:十六进制,SIZE字节为单位以十六进制输出,即输出时一列包含SIZE字节。在默认条件下,以四个字节为一组输出。

   

实验过程:

1.代码部分

2.1ASCII代码:
    

  #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)    

  }
  2.2十六进制代码:  #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);

  }
  2.3主函数:
   #include "head.h"

  #include <stdio.h>

  void main()

  {

   char name[50];

   printf("please input the txtname:");

   scanf("%s",name);

   ascii(name);

  hex(name);

  }
  2.4头文件:
 

  void hex(char *name);

  void ascii(char *name);

编译运行:

静态库:

共享库:

Makefile:

遇见问题:

在运行一些文件如acill.c时总是显示没有文件,感觉还是自己比较粗心大意,代码刚开始也存在一些问题,英文空格和中文也不同,需要注意。

体会:本次实验总体是不特别难,但是细节很多,综合性也有,希望还是认真学习一下实用的知识

posted @ 2020-10-11 19:44  zhen3  阅读(128)  评论(0)    收藏  举报