linux - 计算 Linux 中文件描述符的重复次数

标签 linux file-descriptor dup

在 Linux 中,可以使用 dup command family 复制文件描述符.

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

最佳答案

尝试对打开的描述符使用 fstat()。此系统调用返回 struct stat。重复的描述符引用同一设备上的同一 i-node(struct statst_devst_ino 成员)。

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

更新:

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

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

关于linux - 计算 Linux 中文件描述符的重复次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27623982/

相关文章:

linux - Mongorestore:createIndex 错误:v:2 索引键模式中的值不能是对象类型。只允许数字 > 0、数字 < 0 和字符串

python - Linux 上的 PyQt5 QMultimedia 出现段错误

Python 持久套接字连接

c - 如何使用 dup 和/或 dup2 将标准输出重定向到管道,然后输出到另一个管道,然后再返回到标准输出?

linux - Grep 内部从 ls 和 head 返回的文件

c++ - 命令使用 shell 运行但卡在 QProcess 中

python - Python 中的多处理和套接字

c - 如何循环打开和关闭文件

c - 使用管道复制字符串

c - 将标准输出重定向到文件并使用函数重新建立标准输出