【发布时间】:2020-04-21 07:17:41
【问题描述】:
如果两条路径有相同的inode号;其中之一是硬链接。我们是否有一个系统调用来知道其中哪一个是硬链接。或 C 中的任何其他编程方式。
【问题讨论】:
-
如果两条路径的inode编号相同,则它们都是硬链接。目录中引用文件的条目是指向该文件的硬链接。
-
统计结构包含一个链接计数(st_nlink)。对于只有单个名称的文件,链接数为1。如果有多个链接,则在此处体现;这样您就可以判断一个文件是否有多个链接,但没有一个是唯一真正的链接。另外,请注意,目录树基本上是通过链接构建的,因此目录的链接计数通常为 2 或更大。
-
同意,我们可以使用 nlink 找到链接计数。而基于单元的系统中的文件本身就是一个硬链接。
标签: unix operating-system system-calls