对相关资料的整理:
1. 三个数据结构
- 描述符表:每个进程有其各自的描述符表,每个表项指向文件表中的一个表项,形如:
| fd0 |
| fd1 |
| fd2 |
| fd3 |
| ... |
- 文件表:表示的是打开文件的集合,每个表项包括文件的位置,引用计数,一个指向v-node表的指针。该表所有进程共享。
。。。 文件位置 引用计数 。。。 其中:文件位置指打开文件后光标所在位置;引用计数指不同进程打开该文件的次数(包括fork).
- v-node表:类似文件表,所有进程共享,指磁盘文件,表项包括了stat中大多数信息。
2. 完整关系

3. 同一个进程连续打开同一份文件(未关闭)

各自读,不相互影响,写相互影响。
4. fork

读,写相互影响,父,子进程光标交替走。
本文深入探讨了进程间文件操作的细节,包括描述符表、文件表和v-node表的作用和关系,解释了同一进程及父子进程在读写同一文件时的影响差异。
3682

被折叠的 条评论
为什么被折叠?



