0

現在、psutil API をテストしています。このコマンドを実行すると(ファイル記述子の数を知るために):

p = psutil.Process(PID)
p.num_fds()

70 個のファイル記述子を取得します。

ただし、同じ PID でこのコマンドを実行すると、次のようになります。

p.open_files()

27しか出ません。

どういう理由ですか?

4

1 に答える 1

2

その理由は、open_files()通常のファイルのみを返しますが、プロセスは他の多くの種類の fd (ソケット、パイプなど) を開く可能性があるためです。lsof のようなツールは、それらすべてを報告します。psutil では同じことを行わないことにしました。これは複雑すぎて、レベルが低すぎて、一貫した API を使用しても移植できないからです。

于 2015-03-23T18:48:15.447 に答える