在 Linux 中,可以使用 dup
command family 复制文件描述符.
有没有办法通过系统调用的方式获取文件描述符的重复次数?
最佳答案
尝试对打开的描述符使用 fstat()
。此系统调用返回 struct stat
。重复的描述符引用同一设备上的同一 i-node(struct stat
的 st_dev
和 st_ino
成员)。
通过所有打开的描述符运行循环(您可以安全地运行从 0
到 getrlimit(RLIMIT_NOFILE, ...)
的循环 - stat()
将为关闭的描述符返回 -1)并检查唯一的 st_dev
和 st_ino
您会发现重复项。
更新:
仔细研究 Linux 上的 fuser
命令后,您似乎可以通过查看 /proc/PIF/fd/
文件夹(构建摘要所有或“有趣”进程打开的文件数)。
在 FreeBSD 上类似的技巧是通过 fstat
命令完成的(没有安装 /proc
文件系统),但这种方法可能不适用于 Linux(haven '检查得更深)。
关于linux - 计算 Linux 中文件描述符的重复次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27623982/