myod实验
实验任务
1 复习c文件处理内容
2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
-
main与其他分开,制作静态库和动态库
-
编写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

-
相关阅读:
NIS server on centOS 7
fabric-python-基于centos 7
玩玩Jenkins
身份认证技术性能对比
Linux时区设置和时间同步-基于CentOS 6(最小安装)
openldap+phpadmin的最简安装和配置
tomcat8.5的网页管理(远程)配置、SSL证书配置-基于Debian 9
tomcat添加为service服务-基于Debian 9
安装、配置MySQL5.8基于Debian 9(用apt-get install 默认安装结果是mariadb)
下载并配置jdk环境-基于debain 9
-
原文地址:https://www.cnblogs.com/funmary/p/12097763.html
-
最新文章
-
C编译过程
C语言内存模型
C变量作用域
C语言函数
C语言指针
C语言流程控制结构—循环结构
C语言流程控制结构—顺序结构、选择结构
变量命名规则
C语言运算符和表达式
绿野仙踪测试——一种测试尚未存在的系统的方法
-
热门文章
-
Cytoscape.js插件实现网络图之style属性详解
java.io.FileNotFoundException: XXX (系统找不到指定的路径。)
aliyun服务器首次使用(通过power shell/cmd)
Cytoscape.js——(试图学习)数据分析与可视化插件的使用
【LeetCode】 289. 生命游戏(c++暴力版)
【LeetCode】 1111.有效括号的嵌套深度(c++暴力版)
Docker for windows在家庭版上安装报错 Containers Windows Feature is not available
ATAM软件架构评估方法
ADD(Attribute-Driven Design)设计过程
Windows常用工具cmd命令
1 复习c文件处理内容
2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
-
main与其他分开,制作静态库和动态库
-
编写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

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

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
fabric-python-基于centos 7
玩玩Jenkins
身份认证技术性能对比
Linux时区设置和时间同步-基于CentOS 6(最小安装)
openldap+phpadmin的最简安装和配置
tomcat8.5的网页管理(远程)配置、SSL证书配置-基于Debian 9
tomcat添加为service服务-基于Debian 9
安装、配置MySQL5.8基于Debian 9(用apt-get install 默认安装结果是mariadb)
下载并配置jdk环境-基于debain 9
- 最新文章
-
C编译过程
C语言内存模型
C变量作用域
C语言函数
C语言指针
C语言流程控制结构—循环结构
C语言流程控制结构—顺序结构、选择结构
变量命名规则
C语言运算符和表达式
绿野仙踪测试——一种测试尚未存在的系统的方法
- 热门文章
-
Cytoscape.js插件实现网络图之style属性详解
java.io.FileNotFoundException: XXX (系统找不到指定的路径。)
aliyun服务器首次使用(通过power shell/cmd)
Cytoscape.js——(试图学习)数据分析与可视化插件的使用
【LeetCode】 289. 生命游戏(c++暴力版)
【LeetCode】 1111.有效括号的嵌套深度(c++暴力版)
Docker for windows在家庭版上安装报错 Containers Windows Feature is not available
ATAM软件架构评估方法
ADD(Attribute-Driven Design)设计过程
Windows常用工具cmd命令