• myod实验(选做)


    myod实验

    实验任务

    1 复习c文件处理内容

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

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

    2. 编写Makefile

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

    6 在博客园发表一篇博客,重点写遇到的问题和解决过程

    代码部分

    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:
    ");
    
      while(ch!=EOF)
      {
         if(ch=='
    ')
        	printf("
    ");
         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:
    ");
      fp=fopen(name,"r");
      ch=fgetc(fp);
      while(ch!=EOF)
      {
        if(ch=='
    ')
        printf("
    ");
        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编译即可

    export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
    gcc -shared -fpic -o myod.so hex.c ascii.c
    gcc myod.c myod.so 
    

    4.makefile
    makefile如下,写好后直接make即可

    testmymath:main.o add.o sub.o mul.o div.o
    	gcc main.o add.o sub.o mul.o div.o -o testmymath
    main.o:main.c head.h
    	gcc -c main.c -o main.o
    add.o:add.c head.h
    	gcc -c add.c -o add.o
    sub.o:sub.c head.h
    	gcc -c sub.c -o sub.o
    mul.o:mul.c head.h
    	gcc -c mul.c -o mul.o
    div.o:div.c head.h
    	gcc -c div.c -o div.o
    clean:
    	rm -f *.o testmymath
    

  • 相关阅读:
    log4net使用
    第二天 ado.net, asp.net ,三层笔记
    第一天上传我的前端基础笔记
    开通博客的第一天上传我的C#基础笔记。
    VS 星期作业 if else的应用 做一个受不受异性欢迎的小程序
    ****************VS编码操作实践******************
    VS基本学习之(变量与常量)
    VS的基本学习
    2016.4.10 重生
    【python之路3】if 语句
  • 原文地址:https://www.cnblogs.com/funmary/p/12097763.html
Copyright © 2020-2023  润新知