• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

20145208蔡野

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

20145208 《信息安全系统设计基础》第2周学习总结

20145208 《信息安全系统设计基础》第2周学习总结

教材学习内容总结

vi的基本操作

  • vim 文件名:打开当前目录下相应的文件(如果不存在会自动新建)

  • 光标移动:

    • h-←,j-↓,k-↑,l-→,方向键也可以控制相应的光标移动方向;w-移动到下一个单词,b-移动到上一个单词。
    • [[ 转到上一个位于第一列的"{";]] 转到下一个位于第一列的"{";{ 转到上一个空行;} 转到下一个空行
  • 插入模式:(不同模式之间需要先esc退出后才能切换)

    • i 在当前光标处进行编辑
    • I 在行首插入
    • A 在行末插入
    • a 在光标后插入编辑
    • o 在当前行后插入一个新行
    • O 在当前行前插入一个新行
    • cw 替换从光标所在位置后到一个单词结尾的字符
  • 保存和退出vim:

    • w 保存文档
    • :q! 强制退出,不保存
    • :q 退出
    • :wq! 强制保存并退出
    • :w <文件路径> 另存为
    • :saveas 文件路径 另存为
    • :x 保存并退出
    • :wq 保存并退出
  • 删除文本

    • x 删除游标所在的字符
    • X 删除游标所在前一个字符
    • Delete 同x
    • dd 删除整行
    • dw 删除一个单词(不适用中文)
    • d$或D 删除至行尾
    • d^ 删除至行首
    • dG 删除到文档结尾处
    • d1G删至文档首部

gcc

  • 预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
  • 编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
  • 汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
  • 链 接:gcc hello.o –o hello ;gcc -o 调用ld

gdb

  • gdb programm(启动GDB)
  • b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
  • run 开始运行程序
  • bt 打印函数调用堆栈
  • p 查看变量值
  • c 从当前断点继续运行到下一个断点
  • n 单步运行
  • s 单步运行
  • quit 退出GDB

静态库和共享库

  • 静态库制作(以实验为例)

    • gcc -c add.c sub.c mul.c div.c

    • ar rcvs libmymath.a add.o sub.o mul.o div.o

    • gcc main.c -o main -L. -lmymath (or gcc main.c ./libmymath.a -o main)

  • 共享库制作(以实验为例)

    • gcc -fPIC -c add.c sub.c mul.c div.c

    • gcc -shared -o libmymath.so add.o sub.o mul.o div.o

    • gcc -o main main.c -L. -lmymath

    • libmymath.so 要拷贝到/lib or /usr/lib

makefile

  • 以实验为例
  • gcc -c code.c -o code.o
  • gcc -c prog.c -o prog.o
  • gcc prog.o code.o -o test

教材学习中的问题和解决过程

问题一:敲入:wq 退出保存时,出现 E212:无法打开并写入文件 的错误提示。

  • 这是由于在该目录下当前用户没有写权限导致。

  • 解决方案:在不需要root权限的文件夹中建立文件

  • 或保存文件时用 : w ! sudo tee %(tee 用于读取输入文件,同时保存;%表示当前编辑文件 )

问题二:不能成功编译

  • 如下错误:

  • 源代码没有加stdio.h头文件

问题三:未定义引用

  • 暂时合并到一个c文件中,但正确的解决方式应该不是这样

课后作业中的问题和解决过程

7.8

答:

  • A.main.1,main.2;
  • B.UNKNOWN;
  • C.ERROR.

7.10

答:

  • A.gcc p.o libx.a p.o
  • B.gcc p.o libx.a liby.a libx.a
  • C.gcc p.o liby.a libx.a liby.a libz.a

其他(感悟、思考等,可选)

代码托管截图

  • 代码托管网址

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/2 20/20 学会了虚拟机安装和Ubuntu的基本操作
第二周 56/56 1/3 20/40 学会了Ubuntu终端下的C语言编写

参考资料

  • 2016-2017-1 《信息安全系统设计基础》教学进程
  • 无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用)解决方案
  • 解决Vbox里的Linux虚拟机上网问题
  • 实验二 Linux下C语言编程基础
  • 教材导读
  • 因为权限无法写入文件解决

posted on 2016-09-25 13:00  20145208蔡野  阅读(271)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3