2017-2018-1 20155308 《信息安全系统设计基础》第四周学习总结(第四周测试)

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

教材学习内容总结

任务一myod-系统调用版本

要求:

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

学习:Linux od命令详解

http://www.jb51.net/article/102421.htm

  • 功能

od命令用于将指定文件内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符。od命令系统默认的显示方式是八进制,名称源于Octal Dump。

常见的文件为文本文件和二进制文件。od命令主要用来查看保存在二进制文件中的值,按照指定格式解释文件中的数据并输出,不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。

  • 命令格式
od [<选项><参数>][<文件名>]

以十六进制输出,默认以四字节为一组(一列)显示。

od -tc -tx 20155308.txt

以十六进制输出,每列输出一字节。

od -tx1 testfile

这样显示就整齐多了。

  • 如果要是用myod.c代码实现运行:

码云链接为

https://gitee.com/haowenfei25/XinXiAnQuanXiTongSheJiJiChu20155308/blob/master/ketang/myod.c

实验过程中的问题

在编译之后,直接运行myod,将会出现以下的问题:

后来我发现不能直接运行,而是应用命令限制输出

./myod -tc -tx1 12.txt

结果就正常了

任务二

  • 对于文件的处理:
  1. 打开文件:宣告想要访问一个I/O设备,内核返回描述符(小的非负整数)
    改变当前的文件位置:内核保持着一个文件位置k,是从文件开头起始的字节偏移量
  2. 读写文件:调用read和write函数文件从当前文件位置开始读写。调用read和write函数来执行输入和输出的,read成功返回读的字节数,若EOF为0,出错为-1。
    •write成功则为写的字节数,出错则为-1
  3. 关闭文件:内核释放文件打开时创建的数据结构,并将这个描述符恢复到可用的描述符池中
  • RIO包

RIO提供两种函数

无缓冲的输入输出函数:直接在存储器和文件之间传送数据,没有应用级缓冲,对二进制数据读写到网络和从网络读写二进制数据

任务三 完成head,tail的使用

-head命令就是对文件打印代码,默认是从头开始打印前10行 ,也可以自定义打印
<1>head -n xxx :打印前几行
<2>head -c xxx :打印前几个字

  • tail命令就是对文件打印代码,默认是从头开始打印后10行 ,也可以自定义打印
    <1>tail -n xxx:打印后几行
    <2>head -c xxx :打印后几个字

通过man -k head了解head命令的主要功能

缩小查找范围

保存一个文件

打印出文件前几行的文字

通过man tail了解tail命令的主要功能

打印后十个字

感悟、思考

本次课上测试主要是根据之前我们所编写的myod代码进行的一次测试,我在课堂上没有做出来,所以课下根据网上的讲解和同学的代码,认真了解了这个命令的使用,并且自己做了实践,感觉受益匪浅。

posted @ 2017-10-15 22:46  郝文菲20155308  阅读(260)  评论(1编辑  收藏  举报