如何获取打开文件描述符的数量?

时间:2012-11-10 06:36:56

标签: perl

如何查找我的Perl程序打开的文件数量?当然,我可以使用像

这样的东西
scalar( my @a = glob "/proc/$$/fd/*" );

但看起来有点hacky ......我应该忽略一些非常简单的事情。

3 个答案:

答案 0 :(得分:1)

您可以使用fstat()来电或fcntl(fd, F_GETFL)来电扫描所有可能的文件句柄,从0到getrlimit(RLIMIT_NOFILE)。

但是,使用其中任何一个都会比仅仅查看/proc/self/fd/*慢得多。并且,它们仍然依赖于某些Linux的主题,并且不会使您的程序可移植。

答案 1 :(得分:0)

这里有类似的问题 How to find open global filehandles in a perl program

您需要稍微更改一下以满足您的要求

答案 2 :(得分:-1)

你可以使用lsof来达到这个目的。 lsof / | wc -l应该可以正常工作