总结几种常见情况下,打开文件后的数据结构:
1、一个进程打开两个不同的文件
2、同一个进程2次打开同一个文件
共享V节点,每个fd各自对应一个文件表项
3、dup后
共享文件表和v节点
4、fork后
子进程完全复制父进程的文件描述符列表,父子进程对应的fd共享文件表和v节点;
5、记录锁
多进程写同一个文件,需要加建议性/强制性记录锁,记录锁是挂在i/v节点上的,且记录锁与进程相关,同一个进程多次操作锁,本次操作会替代前一次操作;