【发布时间】:2016-06-03 04:05:51
【问题描述】:
我正在尝试了解 Linux 数据结构及其管理打开文件的方式。据我了解,每个task_struct 都指向files_struct,其中包含所有打开文件描述符的列表。每个这样的条目都是指向struct file 的指针。该结构具有操作任何特定文件所需的所有信息。
struct file 的成员f_count 是否表示同一文件的打开实例数?如果是这样,内核会为每个打开的文件实例创建一个file struct 吗?
示例:/users/soverflow/test.txt
如果进程 P1、P1 和 P3 打开同一个文件“/users/soverflow/test.txt”,内核是创建对应于 P1、P2 和 P3 的“三个”file struct 还是只创建一个file struct 和所有进程指向相同的结构?
如果所有进程都指向同一个结构,它们如何知道当前文件位置?
【问题讨论】:
标签: linux linux-kernel filesystems kernel linux-device-driver