问题背景
设文件F1的当前引用计数值为1,先建立F1的符号链接(软链接)文件F2,再建立F1的硬链接文件F3,然后删除F1。此时,F2和F3的引用计数值分别是______。
A.0、1
B.1、1
C.1、2
D.2、1
[解析]
为了使文件实现共享,通常在文件的索引节点中设置一个链接计数字段,用来表示链接到本文件的用户目录项的数目(引用计数值)。当新文件建立时,一般默认引用计数值为1。
硬链接可以看作是已存在文件的另一个名字,新文件和被链接文件指向同一个节点,引用计数值加1。当删除被链接文件时,只是把引用计数值减1,直到引用计数值为0时,才能真正删除文件。
软链接又叫符号链接,在新文件中只包含了被链接文件的路径名,新文件和被链接文件指向不同的节点。建立软链接文件时,文件的引用计数值不会增加。在这种方式下,当被链接文件删除时,新文件仍然是存在的,只不过是不能通过新文件访问被链接文件而己。
因此,在本题中,当建立F2时,F1和F2的引用计数值都为1。当再建立F3时,F1和F3的引用计数值就都变成了2。当后来删除F1时,F3的引用计数值为2-1=1。F2的引用计数值仍然保持不变。
Linux环境下查看引用计数
参考文章: Linux目录文件inode引用计数