2017-2018-1 20155230 《信息安全系统设计基础》第二周课堂实验
因第二周电脑没电没能交上作业,所以写博客补上。
1-vi测试
- 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
- 用Vi输入图中代码,并用gcc编译通过
- 在Vi中使用K查找printf的帮助文档
- 提交vi编辑过程截图,要全屏,包含自己的学号信息
使用 gcc -Og -o prog main.c add.c sub.c mul.c div.c
将光标移动到printf上按shift+k进入帮助界面
2-gcc测试
- 用gcc 进行预处理,编译,汇编,链接vi输入的代码
- 生成的可执行文件中要有自己的学号
- 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
使用gcc ESc(c为小写)---iso分别对这5个文件进行预处理、编译、汇编后 使用gcc ~.o ~.o -o 随意名称
对.0文件进行链接
3-gdb测试
- 用gcc -g编译vi输入的代码
- 在main函数中设置一个行断点
- 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
- 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
使用gcc -g *.c -o test
创建可gdb文件test,输入gdb test
开始gdb调试,再输入 l(小写L)显示test文件内容。
4-静态库测试
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
- 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
输入ar -cr mymath.a add.o sub.o mul.o div.o
建立一个静态库,之后输入gcc -o 20155230 main.c ./mymath.a
生成一个可执行文件20155230。 输入gcc -c -g main.c
和gcc -o main.c mymath.a
对20155230进行gdb调试。
5-共享库
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
- 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
输入gcc -shared -fpic -o mymath.so add.c sub.c mul.c div.c
建立一个共享库,再输入gcc -o 5230 main.c ./mymath.so
,生成一个可执行文件5230。输入gcc -o main.c mymath.so
对5230进行gdb调试
6-makefile
1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
2 提交Make过程截图,要全屏,包含自己的学号信息
换行后一定要按tab
键,否则该文件无效。
7-myod -tc -tx1
的实现
1 复习c文件处理内容
- 该myod命令的实现使用了C语言的文件读取方法,及%c / %d / %x输出字符类型的不同。
2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
3 main与其他分开,制作静态库和动态库
静态库实现:
动态库实现:
4 编写Makefile
5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
代码链接
6 在博客园发表一篇博客,重点写遇到的问题和解决过
转载于:https://www.cnblogs.com/J1n233/p/7605535.html
2017-2018-1 20155230 《信息安全系统设计基础》第二周课堂实验相关推荐
- 信息安全系统设计基础第二周学习总结
信息安全系统设计基础第二周学习总结 学习目标 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 ...
- 20135219洪韶武——信息安全系统设计基础第九周学习总结
信息安全系统设计基础第九周学习总结 学习时间:7小时 学习内容:课本第十章 一.第十章知识点(1~6) 第一部分:文件的概念及相关操作 1.每个unix文件都是一个m字节的序列:所有I/O设备如网络. ...
- 信息安全系统设计基础第一周学习总结
学习计时:共15小时 读书:1 代码:10 作业:13 博客:1 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令 ...
- 信息安全系统设计基础第九周学习总结
第十章 系统级I/O的实践 学习目标: 代码阅读理解: 1.编译运行代码 2.使用man学习理解相关系统调用, 理解参数.返回值的含义 3.会用grep -nr xxx /usr/include 查宏 ...
- 信息安全系统设计基础第二次实验
http://www.cnblogs.com/pingcpingcuo/p/7787450.html 转载于:https://www.cnblogs.com/fengxingck/p/7788991. ...
- 20135323符运锦---信息安全系统设计基础第一周学习总结
学习计时:共15小时 读书:1小时 代码:8小时 作业:4小时 博客:2小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Li ...
- 20135304刘世鹏——信息安全系统设计基础第一周学习总结
第一节 Linux系统简介 一.Linux是一个操作系统 1. Linux 本身只是操作系统的内核.内核是使其他程序能够运行的基础. 它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序 实 ...
- LINUX信息安全系统设计基础第一周学习总结
Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...
- 信息安全系统设计基础第九周总结
第十章 系统级I/O 输入操作是从I/O设备拷贝数据到主存,输出操作是从主存拷贝数据到I/O设备 10.1Unix I/O 一个Unix文件就是一个m个字节的序列: 所有的I/O设备都被模型化为文件, ...
最新文章
- SSO单点登录基于CAS架构封装 Memcached 实例
- 离人类更近一步!DeepMind最新Nature论文:AI会“回忆”,掌握调取记忆新姿势
- oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序
- mybatis中使用XML配置文件方式实现CRUD模板流程
- linux 查看共享内存最大值,linux上更改共享内存的最大值
- Android 用户信息管理程序【SQLite数据库、多选框、单选按钮】
- Linux 字符设备驱动开发基础(三)—— read()、write() 相关函数解析
- CutJS – 用于 HTML5 游戏开发的 2D 渲染引擎
- leetcode - 155. 最小栈
- CVPR 2019 Oral 目标跟踪最强算法SiamRPN++开源实现
- nodejs脚本后台运行
- UVA 1153 Keep the Customer Satisfied 顾客是上帝(贪心)
- mysql查询记录总数_MySQL记录总条数实现查询优化
- php eclipse 插件安装,phpeclipse插件下载-phpeclipse插件官方版 v1.2.3 官方最新版 - 安下载...
- 【问题解决】seckill-秒杀项目 -- 服务端异常
- 高阶篇:4.1.2.2)产品部件级别的QFDII
- 2022国内TMS运输管理系统排行榜
- linux 内核 mtd读取,linux内核 mtd分区
- PHP 生成随机昵称或用户名
- 计算机efs恢复工具,重装系统后如何恢复对EFS加密文件的访问