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小时

  • 改进情况:

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

参考资料

原文地址:https://www.cnblogs.com/wang5324/p/7673976.html