如何查找我的Perl程序打开的文件数量?当然,我可以使用像
这样的东西scalar( my @a = glob "/proc/$$/fd/*" );
但看起来有点hacky ......我应该忽略一些非常简单的事情。
答案 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应该可以正常工作