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

1071573-20171206172429206-1179833002.png

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

od -tx1 testfile

1071573-20171206173554331-1599730148.png

这样显示就整齐多了。

  • 如果要是用myod.c代码实现运行:
    1071573-20171206192641597-959644189.png

码云链接为

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

实验过程中的问题

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

1071573-20171206192312113-534404733.png

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

./myod -tc -tx1 12.txt

结果就正常了
1071573-20171206192641597-959644189.png

任务二

  • 对于文件的处理:
  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命令的主要功能
1071573-20171015220426996-385063402.png
缩小查找范围
1071573-20171015221400355-1283896009.png
保存一个文件
1071573-20171015224013324-59916775.png

打印出文件前几行的文字
1071573-20171015223910012-208935083.png

通过man tail了解tail命令的主要功能
1071573-20171015223917449-1666764727.png
打印后十个字
1071573-20171015223924262-302530267.png

感悟、思考

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

转载于:https://www.cnblogs.com/JIUSHA/p/7674725.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值