0

Perlプログラムによって開かれたファイルの数を見つける方法は?もちろん、私は次のようなものを使うことができます

scalar( my @a = glob "/proc/$$/fd/*" );

しかし、それは少しハッキーに見えます...私は非常に単純なものを見落とすべきでした。

4

3 に答える 3

1

fstat()call またはcallを使用して、0 から getrlimit(RLIMIT_NOFILE) までのすべての可能なファイル ハンドルをスキャンできますfcntl(fd, F_GETFL)

ただし、これらのいずれかを使用すると、単に を見るよりも大幅に遅くなります/proc/self/fd/*。そして、それらはまだいくつかの Linux 主義に依存しており、プログラムを移植可能にしません。

于 2012-11-10T22:30:43.587 に答える
0

ここにあるのと同様の質問があります perlプログラムで開いているグローバルファイルハンドルを見つける方法

要件に合わせて少し変更する必要があります

于 2012-11-10T06:38:58.583 に答える
-1

そのために lsof を使用できます。lsof /|wc -l は正常に動作するはずです

于 2012-11-10T07:16:01.280 に答える