文件描述符与索引节点
通常来讲,使用与管理文件是通过文件名来进行的linux 文件描述符,但从应用编程的角度看,文件描述符更有用,而系统中的文件在本质上是通过
其索引节点进行管理的。
文件描述符是应用程序中表示被打开的文件的一个整数,其他对文件的操作插口都要使用这个整数来指定所操作的文件。
从系统的角度来看,文件的索引节点(inode)是文件的惟一标示。一个文件的inode包含文件系统处理文件所须要的全部信息,如
访问权限、当前大小等。详尽来说,实际上存在两种类型的inode:一个是所谓的内核inode(in-coreinode),保存在显存中,在系统中
每位打开的文件都对应着一个内核inode;另一个是c盘inode(on-diskinode),在文件系统中的每一个文件都有一个c盘inode,保存在
c盘上linux 发邮件,它所保存的具体信息与文件系统的类型有关。当进程打开一个文件时,文件的c盘inode中的信息都会被载入显存,并构建一个内
核inode。当内核inode被更改后,系统负责将其同步到c盘上。c盘inode与对应的内核inode所保存的信息并不是完成相同的。内核inode
记录的是关于文件的更通用的一些信息,而忽视掉与具体文件系统类型相关的一些信息。
通常而言linux 文件描述符,一个inode应该记录如下信息:
*文件类型
*与文件相关的硬链接的个数
*以字节为单位的文件的宽度
*设备标示符
*在文件系统中标示文件的索冒号
*文件所属用户的UID(UserID,用户标示符)
*文件所属组的GID(GroupID,组标示符)
*各类时间戳,包括文件状态的改变时间、文件的最后访问时间和最后更改时间