在Linux中,可以使用dup
command family复制文件描述符。
有没有办法通过系统调用获取文件描述符的重复数量?
答案 0 :(得分:1)
尝试在开放描述符上使用fstat()
。此系统调用返回struct stat
。重复描述符指的是同一设备上的同一个i-node(st_dev
成员st_ino
和struct stat
)。
通过遍历所有打开的描述符运行循环(您可以安全地运行从0
到getrlimit(RLIMIT_NOFILE, ...)
的循环 - stat()
将为关闭的描述符返回-1)并检查唯一的{{1} }和st_dev
你会发现重复。
更新:
在Linux上仔细查看st_ino
命令之后,看起来您可以通过查看fuser
文件夹找到多个进程的此信息(构建所有文件或&#34打开的文件摘要;有趣&# 34;过程)。
类似的技巧是由/proc/PIF/fd/
命令完成的(没有挂载的fstat
文件系统),但这种方法可能不适用于Linux(还没有检查过)深)。