zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155316 《信息安全系统设计基础》第4周学习总结

    课堂实验 - myod-系统调用版本

    内容

    1. 参考教材第十章内容

    2. 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名

    3. 不要把代码都写入main函数中

    4. 要分模块,不要把代码都写入一个.c中

    5. 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息

    截图与代码

    学习中遇到的问题与解决过程

    • 问题1:在加载链接了共享库的模块的时候,出现了找不到共享库的错误(如下图)

    • 问题1解决方案:在网上有查找下资料,大致说的都是

    • 首先在目录下有共享库,所以第一种可能排除,那么最大的可能是第二种:程序找不到该共享库文件

    • 于是我查看了下我的makefile2文件,看看我是怎么链接共享库的:

    • 回想起在学习教材的时候,对于地址写的更详细一点,例如:./main.c

    • 于是我将第二条命令修改为gcc main.c ./libod.so -o prog2l

    • 然后运行一遍命令./prog2l main.c,结果顺利运行出来了

    • 问题2:关于用系统调用编写myod的时候,用man 2 open找不到该函数

    • 问题2解决方案:换一个虚拟机就可以了(原先用的是实验楼的环境,现改成了VritualBox上的虚拟机)

    教材学习内容总结

    • 系统级I/O
    • 错误处理

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

    • 问题1:教材中的数据类型size_t是什么意思?
    • 问题1解决方案:教材中对此的解释是“表示数据结构大小的首选数据类型”,对此并没有很深的理解,于是百度了一下,解释可归纳为:

    一个基本的无符号整数的C / C + +类型, 它是sizeof操作符返回的结果类型, 该类型的大小可选择。因此,它可以存储在理论上是可能的任何类型的数组的最大大小。
    --来自百度百科

    • 也就是说可以用size_t类型存储任意类型大小的数组

    • 问题2:描述符究竟是什么东西?

    • 问题2解决方案:看了一下教材,大概可以这么概括:应用程序向内核申请打开某文件时,内核返回该文件的描述符,应用程序可用它来标识文件,而对于这个打开文件的所有信息则有内核来记录。

    代码调试中的问题和解决过程

    • 贴士1:教材P626页有引用csapp.h的头文件,但这个是系统自带的吗?
    • 解说1:试着直接这样编译运行,结果提示编译错误
    • 在百度搜索csapp.h,结果显示
    • 这说明是自己编写出来的头文件,并不是系统自带的
    • 想编译成功,需要先将后面零碎的对csapp.h的代码合并编写完才可以

    代码托管

    上周考试错题总结

    结对及互评

    本周结对学习情况

    - [20155308](博客链接)
    - 结对学习内容
        - 课堂作业学习
    

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 1/1
    第二周 300/500 2/3
    第三周 500/1000 1/4
    第四周 921/1300 1/5
    • 计划学习时间:10小时

    • 实际学习时间:6小时

    • 改进情况:运动会结束,会有更多时间来学习了

    参考资料

  • 相关阅读:
    Java包装类
    Java锁机制ReentrantLock
    Java内部类介绍
    JAVA多线程学习六-守护线程
    JAVA多线程学习五:线程范围内共享变量&ThreadLocal
    JAVA多线程学习四
    Maven之阿里云镜像仓库配置
    JAVA多线程学习- 三:volatile关键字
    ansible学习(二)- 清单配置详解
    Java多线程学习(二)
  • 原文地址:https://www.cnblogs.com/protectmonarch/p/7673899.html
Copyright © 2011-2022 走看看