20181229罗福myod实验

myod实验

实验内容:

1 复习c文件处理内容

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

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

4 编写Makefile

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

实验过程:od-tx-tcXXX功能为:在以十六进制输出文件内容(默认为四个字节一组)的同时输出字节对应的ASCII值。

 

1、代码实现

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、输入gcc *.c即可编译成功,新建一个记事本test.txt,里面输入一些随机的东西

 

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

 

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

 

 4、makefile

写好后直接make即可

testmyod:ascii.o hex.o

        gcc myod.o ascii.o hex.o -o testmyod
myod.o:myod.c head.h
        gcc -c myod.c -o myod.0
ascii.o:ascii.c head.h
        gcc -c ascii.c -o ascii.o
hex.o:hex.c head.h
        gcc -c hex.c -o hex.o
clean:
        rm -f *.o testmyod        

 

 

                      

 

posted @ 2020-10-11 17:05  20181229罗福  阅读(66)  评论(0编辑  收藏  举报