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

    2017-2018-1 20155324 《信息安全系统设计基础》第四周学习总结

    补充完成课上没有完成的内容

    题目要求:

    1 参考教材第十章内容
    
    2 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名
    
    3. 不要把代码都写入main函数中
    
    4. 要分模块,不要把代码都写入一个.c中
    
    5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
    
    6 课上上传代码到码云
    

    实践过程:

    • 用命令od -tx1 -tc XXX实现效果,在终端输入命令

    • 通过使用man命令的基本用法了解如何寻找一个需要特定功能的函数:输入命令man -k system | grep call来了解系统调用的相关信息,如下图所示

    • 最终运行截图

    - 遇到的问题

    刚开始输入命令时会出现乱码,在进制转换时无符号数、有符号数、浮点数的没有太在意。

    通过输入正确的命令od -tx -tc 解决了问题

    • 之后编译不通过,是整数类型定义是出现了错误。
    char:字符型数据,占用一个字节
    unsigned char:无符号字符型数据,占用一个字节
    short:短整形数据,占用两个字节
    unsigned short:无符号短整型数据,占用两个字节
    int:整形数据,占用两个字节
    unsigned int:无符号整型数据,占用两个字节
    long:长整型数据,占用四个字节
    unsigned long:无符号长整型数据,占用四个字节
    

    教材学习内容总结

    • 写文件
    #include <unistd.h>
    
    ssize_t write (int fd, const void *buf, size_t count);
    
    • 进程是通过调用open函数来打开一个已存在的文件或者创建一个新文件的:

    open函数将filename转换为一个文件描述符,并且返回描述符数字。返回的描述符总是进程中当前没有打开的最小描述符。flags参数指明了进程打算如何访问这个文件:

    • O_RDONLY:只读
    • O_WRONLY:只写
    • O_RDWR:可读可写
    进程通过调用close函数关闭一个打开的文件。
    #include<unistd.h>
    int close (int fd);
    
    
    

    返回:若成功则为0,若出错则为-1.

    参考别出心裁的Linux系统调用学习法,学习视频,掌握两个重要命令:

    • man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用

    • grep -nr XXX /usr/include :查找宏定义,类型定义,用于阅读.h文件

    完成head,tail的使用,相关API的分析,伪代码,产品代码,测试代码的编写(3分)

    head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。

    tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

    注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。

    head命令

    1.命令格式:

    head [参数]... [文件]...

    2.命令功能:

    head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

    3.命令参数:

    -q 隐藏文件名
    
    -v 显示文件名
    
    -c<字节> 显示字节数
    
    -n<行数> 显示的行数
    

    4.使用实例:

    • 显示文件的前n行

    命令:

    head -n 3 20155324.txt

    • 显示文件前n个字节

    命令:

    head -c 10 20155324.txt
    

    • 文件的除了最后n个字节以外的内容

    命令:

    head -c -32 20155324.txt

    • 输出文件除了最后n行的全部内容

    命令:

    head -n -6 20155324.txt

    tail命令

    用途1:显示文件的最后n个字节,(加上+号的又有不同表现)

    用途2:显示文件的后n行,(与用途1一样,加上+号有不同意义)

    用途3:不显示/显示文件名

    用途4:实时监控更新,若要设定一个间隔时间则使用-s参数

    代码托管

    (statistics.sh脚本的运行结果截图)

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:XX小时

    • 实际学习时间:XX小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    Gentoo 使用genkernel之后,修改了kernel,重新编译kernel和生成initramfs
    如何让git自动在commit message中加入你需要的sob?
    Gentoo:请安装bashcompletion package
    Kernel开发 SubmittingPatches,有关ifdef和static inline & macro
    Kernel开发 Thunderbird配置 From kernel documentation
    Gentoo 添加gentoozh overlay
    linux把文件压缩成.tar.gz的命令
    redhat下装ftp服务器(vsftpd)
    GDB调试精粹及使用实例
    linux中常用的头文件
  • 原文地址:https://www.cnblogs.com/wang5324/p/7673976.html
Copyright © 2011-2022 走看看