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

    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中的当前目录。
      - 绝对路径名:以一个斜杆开始,表示从根节点开始的路径。
      - 相对路径名:以文件名开始,表示从当前工作目录开始的路径。

    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函数。

    教材问题及解决

    理解:

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

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

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

    上周考试错题总结

    • 在任何时刻,所有的读/写头都位于同一个柱面上。
    • 磁盘以扇区大小的块来读写数据。
    • 对扇区的访问时间有三个主要的部分:寻道时间、旋转时间、传送时间,访问时间主要是寻道时间和旋转延迟。
  • 相关阅读:
    Android studio ButterKnife插件
    Android Studio Prettify 插件
    Android studio的主题颜色修改
    MeasureSpec 的三中类型
    android 加载远程Jar、APK
    android源码 键盘消息处理机制
    Android源码阅读笔记二 消息处理机制
    phpstrom 激活
    sublime vue 语法高亮插件安装
    mysql登录报错“Access denied for user 'root'@'localhost' (using password: YES”的处理方法
  • 原文地址:https://www.cnblogs.com/5306xyh/p/9902847.html
Copyright © 2011-2022 走看看