Linux C库I/O函数工作流程图

C库IO函数工作流程图.png

PCB与文件描述符

pcb(进程控制块),是进程存在的唯一标识。在它里面有一个文件描述符表—数组[1024], 文件描述符类型为int

一个进程最多打开1024个文件,其中前三个文件描述符默认打开标准输入,标准输出,标准错误。每次打开一个文件,文件描述符总是从低位到高位来占用文件描述符表

pcb与文件描述符.png

进程的虚拟地址空间

进程的虚拟地址空间为用户区和内核区

虚拟地址空间从下往上:

代码段

已经初始化的全局变量

未被初始化的全局变量

堆 – 分配空间地址从下往上

共享库

栈 – 分配空间地址从上往下

环境变量

内核区

虚拟地址空间如图所示

进程的虚拟地址空间.png

库函数与系统函数的关系

库函数与系统函数的关系.png