如何查看我在文件上使用了多少次 fopen?

Posted

技术标签:

【中文标题】如何查看我在文件上使用了多少次 fopen?【英文标题】:How can I see how many times I have used fopen on a file? 【发布时间】:2014-04-02 06:46:56 【问题描述】:

我正在使用 linux 系统。我有一个多线程应用程序,它在单个文件f 上打开了n 文件句柄。如何在运行时查看我的进程中有多少文件句柄引用了n

【问题讨论】:

通常情况下,您只需自己计算它们。毕竟,这是你的代码。但是你为什么需要这个? 考虑到我没有向您提供有关我的项目的信息,您可以假设我的问题可能与任何可能的软件项目有关。在软件的无限可能性中,您不能想象一个单独的案例,在其中知道文件打开了多少次可能是有用的吗? 我可以想象数百万个有用的案例,以及数百万个您可以计算的案例。电脑很少会失忆,很容易记住你做了什么。 【参考方案1】:

您可以检查/proc/self/fd/ 中的符号链接,看看是否有多个描述符指向同一个文件。

【讨论】:

【参考方案2】:

您可以运行 lsof -p pid of your process 来验证您的进程中打开的文件

【讨论】:

【参考方案3】:

我觉得可以像写一个函数一样简单

如果你愿意,你可以创建一个简单的类,然后你可以在打开时递增,在关闭时递减并处理其他内容。

long myopen(char* filenmae)

    static long count = 0;

    // open file
    // mutex
    count++;  
    // mutex

    return count;

【讨论】:

以上是关于如何查看我在文件上使用了多少次 fopen?的主要内容,如果未能解决你的问题,请参考以下文章

领英如何查看邮箱地址

Linux如何查看最后重启时间

如何查看一个数字输入了多少次

c语言如何查看多重for循环一共循环了多少次,看看输出了多少行?

如何在 fopen 上使用 DISP=SHR

如何查看电脑上的历史操作记录