2014-12-23 47 views

回答

1

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

通过遍历所有打开的描述乳宁环(你可以安全地运行循环从0getrlimit(RLIMIT_NOFILE, ...) - stat()将返回-1封闭描述符)和检查独特st_devst_ino你会发现重复。

UPDATE:

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

在FreeBSD类似的伎俩fstat命令完成(无需安装/proc文件系统),但这种方法可能不会适用于Linux操作系统(还没有检查深)。

+0

对不起,我没有说清楚。您提供的解决方案不能解决我的问题。我将文件描述符传递给多个进程,并且我想要的是在任何这些进程中给定一个特定的FD,我应该能够统计引用相同底层内核结构的系统中的FD数。 – sdeber

+0

@sdeber,根据评论更新答案。 – kestasx