NO.6 Linux系统编程-备忘

发布时间 2023-09-30 19:56:29作者: 真是服了你个老六!!

一、文件I/O

  • FILE* fp 指针(指向的结构体有三个重要的成员)

  • 文件描述符: 通过文件描述可以找到文件的inode, 通过inode可以找到对应的数据块
    文件指针: 读和写共享一个文件指针, 读或者写都会引起文件指针的变化
    文件缓冲区: 读或者写会先通过文件缓冲区, 主要目的是为了减少对磁盘的读写次数, 提高读写磁盘的效率.
  • 虚拟地址空间

  • 进程的虚拟地址空间分为用户区和内核区
    内核区中很重要的一个就是进程管理, 进程管理中有一个区域就是PCB
  • pcb和文件描述符表
  • 一个进程有一个文件描述符表:1024
    •    前三个被占用, 分别是STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO
    •    文件描述符作用:通过文件描述符找到inode, 通过inode找到磁盘数据块
    
    虚拟地址空间->内核区->进程管理->PCB->文件描述表->文件描述符->文件IO操作使用文件描述符

     

# 流程图(帮助理解)

  • C库IO函数的工作流程

  • C库函数与系统函数的关系

  • 虚拟地址空间

  • pcb和文件描述符表