wblyuyang

博客园 首页 新随笔 联系 订阅 管理

文件描述符与索引节点
 一般来讲,使用与管理文件是通过文件名来进行的,但从应用编程的角度看,文件描述符更有用,而系统中的文件在本质上是通过

其索引节点进行管理的。
 文件描述符是应用程序中表示被打开的文件的一个整数,其他对文件的操作接口都要使用这个整数来指定所操作的文件。
 从系统的角度来看,文件的索引节点(inode)是文件的唯一标识。一个文件的inode包含文件系统处理文件所需要的全部信息,如

访问权限、当前大小等。详细来说,实际上存在两种类型的inode:一个是所谓的内核inode(in-core inode),保存在内存中,在系统中

每个打开的文件都对应着一个内核inode;另一个是磁盘inode(on-disk inode),在文件系统中的每一个文件都有一个磁盘inode,保存在

磁盘上,它所保存的具体信息与文件系统的类型有关。当进程打开一个文件时,文件的磁盘inode中的信息就会被载入内存,并建立一个内

核inode。当内核inode被修改后,系统负责将其同步到磁盘上。磁盘inode与对应的内核inode所保存的信息并不是完成相同的。内核inode

记录的是关于文件的更通用的一些信息,而忽略掉与具体文件系统类型相关的一些信息。
 一般而言,一个inode应当记录如下信息:
  * 文件类型
  * 与文件相关的硬链接的个数
  * 以字节为单位的文件的长度
  * 设备标识符
  * 在文件系统中标识文件的索引号
  * 文件所属用户的UID(User ID,用户标识符)
  * 文件所属组的GID(Group ID,组标识符)
  * 各种时间戳,包括文件状态的改变时间、文件的最后访问时间和最后修改时间

posted on 2012-11-04 18:25  wblyuyang  阅读(3183)  评论(0编辑  收藏  举报