0

dup在 Linux 中,可以使用命令 family复制文件描述符。

有没有办法通过系统调用来获取文件描述符的重复数?

4

1 回答 1

1

尝试fstat()在打开的描述符上使用。此系统调用返回struct stat. 重复的描述符指的是同一设备上的同一 i 节点(st_dev及其st_ino成员struct stat)。

通过对所有打开的描述符运行循环(您可以安全地从0to运行循环getrlimit(RLIMIT_NOFILE, ...)-stat()将返回 -1 用于关闭的描述符)并检查唯一性st_devst_ino您会发现重复项。

更新:

在仔细fuser研究 Linux 上的命令之后,您似乎可以通过查看/proc/PIF/fd/文件夹(构建所有或“有趣”进程打开的文件的摘要)来找到多个进程的此信息。

在 FreeBSD 上,类似的技巧是通过fstat命令完成的(没有安装/proc文件系统),但这种方法可能不适用于 Linux(还没有更深入地检查)。

于 2014-12-23T20:54:00.323 回答