【文件属性】:
文件名称:索引节点对象结构体-复高斯分布的数学基础理论
文件大小:6.48MB
文件格式:PDF
更新时间:2024-06-28 07:07:21
嵌入式 Linux C
(2)超级块对象操作
超级块对象中有一个重要的域就是 s_op,它指向超级块的操作函数表。超级块操作函数
由 super_operations 结构体表示,定义在文件中,其形式如下所示:
struct super_operations {
/*创建和初始化一个新的索引节点对象*/
struct inode *(*alloc_inode)(struct super_block *sb);
/*释放给定的索引节点*/
void (*destroy_inode)(struct inode *);
/*从磁盘上读取索引节点*/
void (*read_inode) (struct inode *);
/*VFS 在索引节点上被修改时会调用此函数,日志文件系统执行此函数进行日志更新*/
void (*dirty_inode) (struct inode *);
/*将给定的索引节点写入磁盘*/
int (*write_inode) (struct inode *, int);
/*释放索引节点*/
void (*put_inode) (struct inode *);
/*在最后一个索引节点的引用被释放时,VFS 会调用此函数*/
void (*drop_inode) (struct inode *);
/*从磁盘上删除索引节点*/
void (*delete_inode) (struct inode *);
/*该函数在卸载文件系统时由 VFS 调用,用来释放超级块*/
void (*put_super) (struct super_block *);
/*用给定的超级块更新磁盘上的超级块*/
void (*write_super) (struct super_block *);
/*使文件系统的数据元与磁盘上的文件系统同步,wait 参数指定操作是否同步*/
int (*sync_fs)(struct super_block *sb, int wait);
……
};
注意 读者可以结合本书所讲解函数指针的相关内容考虑一下这里为什么要使用函数指针?
2.索引节点对象
(1)索引节点对象结构体
文件系统处理文件所需要的信息都放在索引节点的数据结构当中,文件名可以随时更
改,但是索引节点是惟一的,一般索引节点有 3 种类型。
� 磁盘文件:狭义的磁盘上存储的文件、数据文件、进程文件。
� 设备文件:同样有组织管理的信息、目录项信息,不一定有数据块(文件内容),主
要的是文件操作。
� 特殊节点:一般和存储介质没有关系,它们可能是由 cpu 在内存中动态生成的。
索引节点对象由 inode 结构体表示,定义在文件中。由于 inode 结构体相当庞
大,因此在这里就简要介绍 inode 的结构体成员。