因第二周电脑没电没能交上作业,所以写博客补上。

1-vi测试

  1. 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
  2. 用Vi输入图中代码,并用gcc编译通过
  3. 在Vi中使用K查找printf的帮助文档
  4. 提交vi编辑过程截图,要全屏,包含自己的学号信息

使用 gcc -Og -o prog main.c add.c sub.c mul.c div.c

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

2-gcc测试

  1. 用gcc 进行预处理,编译,汇编,链接vi输入的代码
  2. 生成的可执行文件中要有自己的学号
  3. 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息

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

3-gdb测试

  1. 用gcc -g编译vi输入的代码
  2. 在main函数中设置一个行断点
  3. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
  4. 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

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


4-静态库测试

  1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
  2. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

输入ar -cr mymath.a add.o sub.o mul.o div.o建立一个静态库,之后输入gcc -o 20155230 main.c ./mymath.a生成一个可执行文件20155230。 输入gcc -c -g main.cgcc -o main.c mymath.a对20155230进行gdb调试。

5-共享库

  1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
  2. 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

输入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. 信息安全系统设计基础第二周学习总结

    信息安全系统设计基础第二周学习总结 学习目标 1. 熟悉Linux系统下的开发环境    2. 熟悉vi的基本操作    3. 熟悉gcc编译器的基本原理    4. 熟练使用gcc编译器的常用选项 ...

  2. 20135219洪韶武——信息安全系统设计基础第九周学习总结

    信息安全系统设计基础第九周学习总结 学习时间:7小时 学习内容:课本第十章 一.第十章知识点(1~6) 第一部分:文件的概念及相关操作 1.每个unix文件都是一个m字节的序列:所有I/O设备如网络. ...

  3. 信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1 代码:10 作业:13 博客:1 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令 ...

  4. 信息安全系统设计基础第九周学习总结

    第十章 系统级I/O的实践 学习目标: 代码阅读理解: 1.编译运行代码 2.使用man学习理解相关系统调用, 理解参数.返回值的含义 3.会用grep -nr xxx /usr/include 查宏 ...

  5. 信息安全系统设计基础第二次实验

    http://www.cnblogs.com/pingcpingcuo/p/7787450.html 转载于:https://www.cnblogs.com/fengxingck/p/7788991. ...

  6. 20135323符运锦---信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1小时 代码:8小时 作业:4小时 博客:2小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Li ...

  7. 20135304刘世鹏——信息安全系统设计基础第一周学习总结

    第一节 Linux系统简介 一.Linux是一个操作系统 1. Linux 本身只是操作系统的内核.内核是使其他程序能够运行的基础. 它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序 实 ...

  8. LINUX信息安全系统设计基础第一周学习总结

     Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...

  9. 信息安全系统设计基础第九周总结

    第十章 系统级I/O 输入操作是从I/O设备拷贝数据到主存,输出操作是从主存拷贝数据到I/O设备 10.1Unix I/O 一个Unix文件就是一个m个字节的序列: 所有的I/O设备都被模型化为文件, ...

最新文章

  1. SSO单点登录基于CAS架构封装 Memcached 实例
  2. 离人类更近一步!DeepMind最新Nature论文:AI会“回忆”,掌握调取记忆新姿势
  3. oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序
  4. mybatis中使用XML配置文件方式实现CRUD模板流程
  5. linux 查看共享内存最大值,linux上更改共享内存的最大值
  6. Android 用户信息管理程序【SQLite数据库、多选框、单选按钮】
  7. Linux 字符设备驱动开发基础(三)—— read()、write() 相关函数解析
  8. CutJS – 用于 HTML5 游戏开发的 2D 渲染引擎
  9. leetcode - 155. 最小栈
  10. CVPR 2019 Oral 目标跟踪最强算法SiamRPN++开源实现
  11. nodejs脚本后台运行
  12. UVA 1153 Keep the Customer Satisfied 顾客是上帝(贪心)
  13. mysql查询记录总数_MySQL记录总条数实现查询优化
  14. php eclipse 插件安装,phpeclipse插件下载-phpeclipse插件官方版 v1.2.3 官方最新版 - 安下载...
  15. 【问题解决】seckill-秒杀项目 -- 服务端异常
  16. 高阶篇:4.1.2.2)产品部件级别的QFDII
  17. 2022国内TMS运输管理系统排行榜
  18. linux 内核 mtd读取,linux内核 mtd分区
  19. PHP 生成随机昵称或用户名
  20. 计算机efs恢复工具,重装系统后如何恢复对EFS加密文件的访问

热门文章

  1. 全方位绕过软WAF攻略
  2. Repeater控件
  3. [改善Java代码]适时选择不同的线程池来实现
  4. 开始逆向objc基础准备(一)简单认识一下arm32,以及与x86汇编指令类比
  5. 用imageNamed加载图片产生的问题
  6. NodeJS”热部署“代码,实现动态调试
  7. 移动端以刻度或尺度滑动方式选择年龄收入等
  8. GetLastError()函数返回值及含义
  9. Hbase配置项简介
  10. 开发完整J2EE解决方案的八个步骤