如何查看我在文件上使用了多少次 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?的主要内容,如果未能解决你的问题,请参考以下文章