博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019-1 20165306 《信息安全系统设计基础》第六周学习总结
阅读量:6004 次
发布时间:2019-06-20

本文共 1593 字,大约阅读时间需要 5 分钟。

2018-2019-1 20165306 《信息安全系统设计基础》第六周学习总结

教材学习内容总结

10.1Unix I/O

  • 所有的I/O设备都被模型化为 文件 ,而所有的输入和输出都被当做对相应文件的读和写来执行。
  • Linux shell创建的每个进程开始时都有三个 ** 打开 ** 的文件:标准输入(描述符为0,STDIN_FILENO)、标准输出(描述符为1,STDOUT_FILENO)、标准错误(描述符为2,STDERR_FILENO)。

10.2文件

  • 普通文件:文本文件是只含有ASCII或Unicode字符的普通文件;二进制文件是所有其他的文件。 对内核而言 ,文本文件和二进制文件没有区别。
  • 目录:用mkdir创建一个目录,用ls查看其内容,用rmdir 删除该目录。
  • 套接字:用来与另一个进程进行跨网络通信的文件。
  • Linux内核将所有文件都组织成一个目录层次结构,由名为/(斜杆)的根目录确定。可以用cd命令来修改shell中的当前目录。
    - 绝对路径名:以一个斜杆开始,表示从根节点开始的路径。
    - 相对路径名:以文件名开始,表示从当前工作目录开始的路径。

1296616-20181104002223213-999773483.jpg

10.3打开和关闭文件

  • open函数:将filename转换为一个文件描述符,并且返回描述符数字。返回的描述符总是在进程中当前没有打开的最小描述符。

O_RDONLY只读,O_WEONLY 只写, O_RDWR 可读可写, O_CREAT 创建, O_TRUNC 截断,O_APPEND设置到结尾

  • mode参数:指定了新文件的访问权限位。

10.4读和写文件

  • 在某些情况下,read和write传送的字节比应用程序要求的要少。这些不足值 表示有错误,出现这样情况的原因有:
    - 读时遇到EOF。
    - 从终端读文本行。
    - 读和写网络套接字。

10.6读取文件元数据

  • stat函数以一个文件名作为输入,fstat以文件描述符作为输入。
  • st_size成员包含了文件的字节数大小,st_mode成员则编码了文件访问许可位和文件类型。

10.8共享文件

  • 描述符表:每个打开的描述符表项指向文件表中的一个表项。
  • 文件表:打开文件的集合是由一张文件表来表示的,所有的进程共享这张表,包括文件位置、引用计数、一个指向v-node表中对应表项的指针。
  • v-node表:所有的进程共享这张v-node表,每个表项包含stat结构中的大多数信息,包括st_mode和st_size成员。

10.9I/O重定向

  • linux>ls>foo.txt将标准输出重定向到磁盘文件foo.txt。
  • int dup2(int oldfd,int newfd)复制描述符表项oldfd到描述符表表项newfd,覆盖描述符表项newfd以前的内容。如果newfd已经打开了,dup2会在复制oldfd之前关闭newfd。

10.10标准I/O

  • 对于程序员而言,一个流就是一个指向FILE类型的结构的指针。
  • 类型为FILE的流是对文件描述符和流缓冲区的抽象。

10.11综合:我该使用哪些I/O函数?

  • 只要有可能就使用标准I/O。
  • 不要使用scanf或rio_readlineb来读二进制文件。
  • 对网络套接字的I/O使用RIO函数。

教材问题及解决

1296616-20181104005402162-1537799802.jpg

理解:

Read(fd2,&c,1); 已读取了f2的第一位f,

Dup2(fd2,fd1); 将fd1重定向到了fd2,

Read(fd1,&c,1); 相当于读取的是fd2的第二位o。

上周考试错题总结

1296616-20181104010226735-23822367.png

  • 在任何时刻,所有的读/写头都位于同一个柱面上。
  • 磁盘以扇区大小的块来读写数据。
  • 对扇区的访问时间有三个主要的部分:寻道时间、旋转时间、传送时间,访问时间主要是寻道时间和旋转延迟。

转载于:https://www.cnblogs.com/5306xyh/p/9902847.html

你可能感兴趣的文章
ELK stack实战之结合rsyslog分析系统日志(auth.log)
查看>>
网络管理工具与IT运维管理平台的差别
查看>>
五一期间安全回顾 木马威胁提升 移动设备数据泄漏受重视
查看>>
FAQ系列 | utf8表存储latin1乱码字符转换
查看>>
VDI序曲二十 桌面虚拟化和RemoteApp集成到SharePoint 2010里
查看>>
oracle里long类型的总结
查看>>
10种有用的CSS技巧
查看>>
服务端接口中的那些坑
查看>>
MySql like 查询 变向写法(不用like 完成like查询)
查看>>
Struts 笔记
查看>>
《C++面向对象高效编程(第2版)》——2.2 对象接口的重要性
查看>>
五个 ping 工具的使用实例
查看>>
在Linux系统下玩《炉石传说:魔兽英雄传》
查看>>
阿里数据库内核月报:2016年01月
查看>>
Samba 系列(七):在 Samba AD DC 服务器上创建共享目录并映射到 Windows/Linux 客户...
查看>>
The Joy of Clojure – Clojure philosophy(1)
查看>>
Apache Storm 官方文档 —— 多语言接口协议
查看>>
在 Linux/UNIX 终端下使用 nload 实时监控网络流量和带宽使用
查看>>
小白学数据:一文看懂NoSQL数据库
查看>>
阿里云ApsaraDB RDS用户 - OLAP最佳实践
查看>>