回顾之前
Linux中删除文件的原理
Linux中的文件被分为用户数据和文件元数据。Linux中文件数据都存储在块中(常见块的大小是4KB,即连续8个扇区sector组成一个块block),而文件的元数据,例如文件的创建者、文件的创建日期、文件的大小等等,都是存贮在叫做inode区域中的。中文译名索引节点。
Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器:i_count 和 i_nlink。
i_count 和 i_nlink,从VFS inode结构体中可以找到:
struct inode {
struct hlist_node i_hash;
struct list_head i_list;
struct list_head i_sb_list;
struct list_head i_dentry;
unsigned long i_ino; //索引节点号
atomic_t i_count; //引用计数器
unsigned int i_nlink;
版权声明:本文为askcto原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。