• 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在哪一个文件中

  • 相关阅读:
    (转) Linux下Setuid命令!
    Linux SWAP 交换分区配置说明(转)
    linux中ctime,mtime,atime的区别
    无法访问win8默认共享(如C$)解决办法
    Daemon进程
    autofs文件自动挂载系统
    Selinux相关
    解读linux中用户密码规则及忘记root口令的破解(思路)
    windows共享连接显示无法打开
    DOS口令启用停用的管理员密码
  • 原文地址:https://www.cnblogs.com/Gst-Paul/p/9906031.html
Copyright © 2020-2023  润新知