c - 查找某个文件的所有硬链接(hard link)

标签 c linux hardlink

我有一个文件名,我必须获取该文件名的所有硬链接(hard link)(位于同一目录中)。

我考虑过将 readlinkdir->d_name 操作结合使用,但这仅适用于软链接(soft link)。

有什么想法吗?

最佳答案

遍历目录中的每个文件并lstat()它。如果其 inode 编号 (st_ino) 与您感兴趣的文件相同,并且它们都具有相同的链接计数 (st_nlink),且链接计数较大大于 1,则它们硬链接(hard link)在一起。

(链接计数检查并不是严格必需的,但它是一个很好的健全性检查。)

关于c - 查找某个文件的所有硬链接(hard link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28227124/

相关文章:

linux - 将更多文件的行数与文件名组合起来

linux - 硬链接(hard link)和绑定(bind)挂载之间的区别?

windows - 以编程方式复制文件夹而不解析 Windows 中的硬链接(hard link) (Win32 API)

windows - 删除指向文件的链接而不清除只读位

c - 从零开始的标准 C XCode 项目

c - 设计shell时如何处理Control-C信号?

linux - 我想在 linux 中的 tpp 演示文稿中放置图像

C 和内联汇编错误

c - 如何从路径/字符串中提取文件名?

c - 如何以编程方式编辑路由表