一、创建
(用户)应用程序——>用户接口、文件目录系统、存取控制模块、逻辑文件系统(找到可分配的空间)——>为文件分配FCB
二、使用
打开文件——>调用open系统调用将文件名传给文件系统——>检索到文件——>将其FCB复制到系统文件打开表——>单个进程文件打开表+1文件——>open会返回一个文件描述符fd(指针,指向目标文件)——>通过文件描述符使用文件
注:首次使用经历以上过程,后面直接通过文件描述符使用文件
文件控制块(目录项/FCB):用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。一个FCB就是一个目录项,当创建一个新文件时,系统将分配一个FCB并存放在文件目录中,成为目录项,目录项中包含了文件名+索引节点(inode)指针。
文件描述符:open打开文件到的是一个文件描述符(索引号),存放在task_struct数据结构(进程控制块)中,将task_struct结构和file结构挂钩。
Linux inode(索引节点):一种数据结构,存储许多文件的信息,不包括文件名和数据内容