内存打开文件结构 - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki
- 这是用来管理最近正在使用的文件的一套机制
- 文件打开后交由这套机制管理
- 文件关闭时再从这种管理机制中退出
- 内存打开文件结构由三部分组成,它们是内存文件控制块inode,打开文件控制块file和进程打开文件表
- 内存INODE块,我们称它为内存INODE表,一般包含NINODE个内存inode
- NINODE 定义在param.h行,值为 100
- 与外存INODE结构基本相同,略有增,减,详见struct inode
-
file结构用来记录打开文件所需的一些附加信息,以反映在打开文件结构中应该加以反映的一些动态要求
- 例如一个文件可以被多个进程,以不同的权限打开
- 又例如一个文件在读取过程中读,写的位置指针是不断变化的,这就需要file结构来控制
- 内存中一般有NFILE个file结构可供使用
- NFILE 定义在param.h的132行,值为100
- 进程打开一个文件时,首先找到或者分配一个内存INODE
- 接着分配一个file结构,建立两者的关系,即将f_inode指向inode
- 最后还需要在进程的u-ofile表中分配一项,指向相应的file结构