5.2打开文件
在操作系统中就是确定进程操作哪个文件。这个确定过程由两个事件构成:
1.将用户进程task_struct中的*filp[20]与内核中的file_table[64]进行挂接。
2.将用户进程需要打开的文件对应的i节点在file_table[64]中进行登记。
*filp[20]:掌控一个进程可以打开的文件,既可以打开多个不同的文件,也可以同一个文件多次打开,每打开一次文件(不论是否是同一个),就要在*filp[20]中占用一个项记录指针。一个进程可以同时打开的文件次数不能超过20次。
file_table[64]是管理所有进程打开文件的数据结构,不但记录了不同的进程打开不同的文件,也记录了不同的进程打开同一个文件,还记录了同一个进程多次打开同一个文件。与*filp[20]类似,只要打开一次文件,就要在file_able[64]中记录.(所以一个进程最多打开20次文件,但所有进程打开文件的总和不能超过64?)
文件的i节点:是记载文件属性的最关键的数据结构。在操作系统中i节点和文件是一一对应的,找到i节点就能唯一确定文件。