第九章 Linux文件系统.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件管理和操作 系统打开文件表 Linux系统内核把所有进程打开的文件集中管理, 组成“系统打开文件表”。 系统打开文件表是一个双向链表,每个表项是一个file结构,称为文件描述符,存放着一个已打开文件的管理控制信息 进程每打开一个文件就建立一个file结构体,并把它加入到系统打开文件链表中。 全局变量first_file指向系统打开文件表的表头。 * 文件管理和操作 struct file { mode_t f_mode; /* 文件的打开模式 */ loff_t f_pos; /* 文件的当前读写位置 */ unsigned short f_flags; /* 文件操作标志 */ unsigned short f_count; /* 共享该结构的计数值 */ unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin; struct file *f_next, *f_prev;/* 链接前后节点指针 */ struct fown_struct f_owner;/* SIGIO用PID */ * 文件管理和操作 struct inode * f_inode; /* 指向文件对应的inode */ struct file_operations * f_op; /* 指向文件操作结构体的指针 */ unsigned long f_version; /* 文件版本 */ void *private_data; /* 指向与文件管理模块有关的私有数据的指针 */ }; * 文件管理和操作 说明: f_mode 创建或打开时指定的文件属性,包括文件操作模式和访问权限。 符号常量FMODE_READ(读)和FMODE_WRITE(写) f_flags 指定了文件打开后的处理方式: O_RDONLY 仅为读操作打开文件 O_WRONLY 仅为写操作打开文件 O_RDWR 为读和写操作打开文件 * 文件管理和操作 f_pos 记载文件中当前读写处理所在的字节位置,相当是文件内部的一个位置指针。 f_inode 指向文件对应的VFSinode f_count 记载共享该file结构体的进程的数目 i_count 记载共享此文件的独立进程数目 f_op 指向对文件进行操作的函数指针集合 file_operations结构 通过f_op对不同文件系统的文件调用不同的操作函数。 * 文件管理和操作 进程的文件管理 一个进程打开的所有文件,由进程两个私有结构进行管理: fs_struct结构 记录着文件系统根目录和当前目录 files_struct结构 包含着进程的打开文件表 * 文件管理和操作 struct fs_struct { int count; /* 共享此结构的计数值 */ unsigned short umask; /* 文件掩码 */ struct inode * root, * pwd; /* 根目录和当前目录inode指针 */ }; * 文件管理和操作 说明: root 指向当前目录所在的文件系统的根目录inode,按照绝对路径访问文件时就从这个指针开始。 pwd是指向当前目录inode的指针,相对路径则从这个指针开始。 * 文件管理和操作 #define NR_OPEN 256 struct files_struct { int count; /* 共享该结构的计数值 */ fd_set close_on_exec; fd_set open_fds; struct file * fd[NR_OPEN]; }; * 文件管理和操作 说明: 进程所打开文件都记载在fd[]数组中,fd[]数组下标称为文件标识号。 进程使用文件名打开一个文件,之后对文件识别就不再使用文件名,而直接使用文件标识号。 打开文件时,建立file结构体,并加入到系统打开文件表中,然后把该file结构体的首地址写入fd[]数组的第一个空闲元素中。 系统启动时文件标识号0、1、2由系统分配: 0标准输入设备,1标准输出设备,2标准错误输出设备。 * 文件管理和操作 * 文件管理和操作 文件操作 文件打开后要进行各种操作,VFS提供了面向文件操作的统一接口。 file中f_op指向的file_operations结构是面向文件进行操作的接口,是VFS提供的向各种物理文件系统的文件操作函数进行转换的统一接口。 * 文件管理和操作 struct file_operati

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档