Inode结构:基本资料

ZDNet软件频道 时间:2008-08-15 作者: | LUPA开源社区 我要评论(9)
本文关键词:结构 Inode Linux
inode的基本资料蛮多,在此我很简略的跟各位介绍一下      unsigned long i_ino;
Inode的基本资料蛮多,在此我很简略的跟各位介绍一下
  
  unsigned long i_ino;
  
  每一个Inode都有一个序号,经由super block结构和其序号,我们可以很轻易的找到这个Inode
  
  unsigned int i_count;
  
  在Kernel里,很多的结构都会记录其reference count,以确保如果某个结构正在使用,它不会被不小心释放掉,i_count就是其reference count。
  
  kdev_t i_dev; /* Inode所在的device代码 */
  umode_t i_mode; /* Inode的权限 */
  nlink_t i_nlink; /* hard link的个数 */
  uid_t i_uid; /* Inode拥有者的id */
  gid_t i_gid; /* Inode所属的群组id */
  kdev_t i_rdev; /* 如果Inode代表的是device的话,
  那此字段将记录device的代码 */
  off_t i_size; /* Inode所代表的档案大小 */
  time_t i_atime; /* Inode最近一次的存取时间 */
  time_t i_mtime; /* Inode最近一次的修改时间 */
  time_t i_ctime; /* Inode的产生时间 */
  unsigned long i_blksize; /* Inode在做IO时的区块大小 */
  unsigned long i_blocks; /* Inode所使用的block数,一个block为512 byte*/
  unsigned long i_version; /* 版本号码 */
  unsigned long i_nrpages; /* Inode所使用的page个数 */
  struct page *i_pages;
  /* Inode使用的page会被放在串行里,这个字段记录着此串行的开头 */
  struct super_block *i_sb; /* Inode所属档案系统的super block */
  unsigned long i_state;
  /* Inode目前的状态,可以是I_DIRTY,I_LOCK和 I_FREEING的OR组合 */
  unsigned int i_flags; /* 记录此Inode的参数 */
  unsigned char i_pipe; /* 用来记录此Inode是否为pipe */
  unsigned char i_sock; /* 用来记录此Inode是否为socket */
  unsigned int i_attr_flags; /* 用来记录此Inode的属性参数 */
  struct file_lock *i_flock; /* 用来做file lock */

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134