信息安全系统设计基础第二周课堂实验

本文档提供了一个信息安全课程实验的详细步骤,包括vi编辑器的基本使用、gcc编译器的配置及应用、gdb调试器的实践操作,以及如何构建和利用静态库与共享库等关键技能。

---恢复内容开始---

信息安全系统设计基础第二周课堂实验

1-vi测试

本次课上因代码编译不通过导致所有实验都未能按时完成,故在此予以补做。

gcc -dg -o prog main.c add.c sub.c mul.c div.c 

1072272-20171001154416419-1347070913.png

将光标移动到printf上按shift+k进入帮助界面

1072272-20171001154524481-862909100.png

2-gcc测试

使用gcc ESc(c为小写)---iso分别对这5个文件进行预处理、编译、汇编后 使用gcc ~.o ~.o -o 随意名称对.0文件进行链接

1072272-20171001154556950-1917557528.png

1072272-20171001154614450-1583115625.png

3-gdb测试

使用gcc -g *.c -o test创建可gdb文件test,输入gdb test开始gdb调试,再输入 l(小写L)显示test文件内容。

1072272-20171001154635903-20227479.png

1072272-20171001154704450-1816617337.png

4静态库的测试

ar rcs mymath.a add.o sub.o div.o mul.o

gcc -static -o 5220 main.o ./mymath.a

1072272-20171001154728184-1367706285.png

1072272-20171001154750950-1618411490.png

5共享库

gcc -shared -fpic -o libmymath.so add.c div.c mul.c sub.c

gcc -o 5220_2 main.c ./libmymaht.so

1072272-20171001154814184-170857694.png

1072272-20171001154833137-1368668657.png

makefile

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

add.o: add.c head.h

gcc -c add.c

mul.o: mul.c head.h

gcc -c mul.c

div.o: div.c head.h

gcc -c div.c

1072272-20171001154900153-1298462245.png

myod

head.h:

#ifndef HEAD_H #define HEAD_H #include<stdio.h> #include<stdlib.h> void ascii(char *name); void sixteen(char *name); #endif

ascii.c:

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

sixteen.c:

#include"head.h" #include<stdio.h> void sixteen(char *name) { FILE *fp; char ch; printf("16进制输出为:\n"); fp=fopen(name,"r"); ch=fgetc(fp); while(ch!=EOF) { if(ch=='\n') printf("\n"); else printf("%x ",ch); ch=fgetc(fp); } fclose(fp); }

main:

#include"head.h" #include<stdio.h> void main(){ char name[50]; printf("od -tx -tc "); scanf("%s",name); ascii(name); printf("\n"); sixteen(name); }

1072272-20171001172641294-1010291964.png

j静态库
1072272-20171001172813981-1256291098.png

动态库
1072272-20171001172905231-1838550004.png

代码托管

转载于:https://www.cnblogs.com/20155220wsq/p/7616462.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值