文稿完整参考lec10文件管理.ppt

* VFS的组成(主要数据结构) 文件对象 每个文件都用一个32位数字来表示下一个读写的字节位置,通常称它为文件位置或偏移量(offset),每当打开一个文件时,偏移量被置0,读写操作便从这里开始,允许通过系统调用lseek对文件位置作随机定位。 Linux建立文件对象(file)来保存打开文件的文件位置,file结构除保存文件当前位置外,还把指向该文件inode的目录项指针也放在其中,并形成一个双向链表,称系统打开文件表。 操作系统之所以不直接使用dentry结构是因为多个进程能够打开同一个文件,因为每一个file结构实际上对应了一个进程的一次打开过程。file结构中记录了文件访问模式,读写指针等信息。 * struct file { struct list_head f_list; //所有打开文件形成的链表 struct dentry *f_dentry; //指向相关目录项的指针 struct vfsmount *f_vfsmnt; //指向VFS安装点的指针 struct file_operation *f_op; //指向文件操作函数的指针 unsigned long f_reada; //预读标志 unsigned long f_ramax; //预读的最多页数 unsigned long f_rae

文档评论(0)

1亿VIP精品文档

相关文档