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

Posted gst-paul

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-2019-1 20165320 《信息安全系统设计基础》第六周学习总结相关的知识,希望对你有一定的参考价值。

教材知识点总结

Unix I/O

  • 介绍:所有I/O设备都被模型化为文件,这种将设备映射为文件的方式,允许Linux内核引出一个简单、低级的应用接口,称为Unix I/O。

    • 打开文件:一个应用程序通过要求内核打开相应的文件,宣告它想要访问一个I/O设备。

    • 每个进程开始时有3个打开的文件:标准输入、标准输出、标准错误。

    • 改变当前文件位置:每个打开的文件,有一个文件位置k,文件位置是文件开头起始的字节偏移量。seek可以显式设置文件的当前位置。

    • 读写文件:

      读:从文件复制n个字节到内存中

      写:从内存复制n个字节到文件中

    • 关闭文件:内核释放文件打开时创建的数据结构,关闭打开的文件并释放内存。

文件

  • 文件类型

    • 普通文件:

      • 文本文件:只含有ASCII或Unicode字符的普通文件。

      • 二进制文件:所有不是文本文件的文件。

    • 目录:包含一组链接的文件,每个链接都将一个文件名映射到一个文件。

    • 套接字:用来与另一个进程进行跨网络通信的文件。

    • 可以用cd命令修改shell中的当前工作目录。

    • 路径名的两种形式:

      • 绝对路径:以一个斜杠开始,表示从根节点开始的路径。

      • 相对路径:以文件名开始,表示从当前工作目录开始的路径。

    • 打开与关闭文件:

      • 进程通过Open函数打开一个已存在的文件或者创建新文件。

          int open(char *filename,int flags,mode_t mode);
      • 原理:open函数将文件名转换成一个文件描述符,并且返回该描述符数字。

      • flag参数:

        O_RDONLY:只读

        O_WRONLY:只写

        O_RDWR:可读可写

        O_CREAT:如果文件不存在,创建一个新文件。

        O_TRUNC:如果文件已存在,截断。

        O_APPEND:在每次写操作前,设置文件位置到文件的结尾处。

        例子:fd = Open("foo.txt",O_RDONLY,0)

        以读的方式打开一个已存在的文件。

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

        S_IRXX:XX能够读这个文件

        S_IWXX:XX能够写这个文件

        S_IXXX:XX能够执行这个文件

      • 进程通过调用close函数关闭一个打开的文件,传入的参数为文件描述符。

          int close(int fd);
      • 如果关闭一个已关闭的描述符会出错

    • 读和写文件

      • 应用程序通过read与write函数来执行输入和输出。

        • read介绍:read函数从描述符为fd的当前文件位置复制最多n个字节到内存位置buf,返回值为-1表示一个错误,返回值为0表示EOF。

            ssize_t read(int fd, void *buf , size_t n);
        • write介绍:从内存位置buf复制至多n个字节到描述符fd的当前文件位置。

            ssize_t write(int fd, const void *buf , size_t n);
    • RIO包的两种不同函数

      • 无缓冲的输入输出函数:直接在内存与文件之间传送数据

      • 带缓冲的输入函数:允许高效地从文件中读取文本行与二进制数据。

    • 应用可以通过stat函数检索相关文件信息。

      • stat函数以一个文件名为输入,并填写一个stat数据结构中的各个成员。

        int stat(const char filename,struct stat buf);

标准I/O

  • 相关函数

    • 打开与关闭文件:fopen(),fclose()

    • 读和写:fread(),fwrite()

    • 读、写字符串:fgets(),fputs()

课上相关命令总结

  • od :读取文件内容,以二进制显示。

  • man -k k1| grep k2 | grep k3:过滤关键字k查找

  • grep -nr XXX /usr/include:寻找XXX在哪一个文件中

以上是关于2018-2019-1 20165320 《信息安全系统设计基础》第六周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

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

2018-2019-1 20165320 《信息安全系统设计基础》 缓冲区溢出漏洞实验

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

2018-2019-1 20165320 实验三 实时系统

20165320 毕业设计 第一周总结

20165320 第八周课下补做