dup
在 Linux 中,可以使用命令 family复制文件描述符。
有没有办法通过系统调用来获取文件描述符的重复数?
尝试fstat()
在打开的描述符上使用。此系统调用返回struct stat
. 重复的描述符指的是同一设备上的同一 i 节点(st_dev
及其st_ino
成员struct stat
)。
通过对所有打开的描述符运行循环(您可以安全地从0
to运行循环getrlimit(RLIMIT_NOFILE, ...)
-stat()
将返回 -1 用于关闭的描述符)并检查唯一性st_dev
,st_ino
您会发现重复项。
更新:
在仔细fuser
研究 Linux 上的命令之后,您似乎可以通过查看/proc/PIF/fd/
文件夹(构建所有或“有趣”进程打开的文件的摘要)来找到多个进程的此信息。
在 FreeBSD 上,类似的技巧是通过fstat
命令完成的(没有安装/proc
文件系统),但这种方法可能不适用于 Linux(还没有更深入地检查)。