4
Cコードでいくつかのファイルを保持しているプロセスを見つけたい(Linux)。Cでファイルを保持するプロセスを見つける方法
私の頭に浮かべる1つの方法は、実行中のすべてのプロセスに対してproc/<PID>/fd
です。 しかし、それはすべてのプロセスのファイルfd
の下ですべてのファイルを掃引するので、非常に時間がかかるでしょう。
もっと軽量な別の方法を教えてください。
ありがとうございます。
Cコードでいくつかのファイルを保持しているプロセスを見つけたい(Linux)。Cでファイルを保持するプロセスを見つける方法
私の頭に浮かべる1つの方法は、実行中のすべてのプロセスに対してproc/<PID>/fd
です。 しかし、それはすべてのプロセスのファイルfd
の下ですべてのファイルを掃引するので、非常に時間がかかるでしょう。
もっと軽量な別の方法を教えてください。
ありがとうございます。
/procの下にあるすべての数値疑似ファイルを列挙し、それぞれのfd /ディレクトリを調べるのが標準的な方法です。これは、 "lsof"のようなユーティリティが一般的に実装される方法です。このデータはすべてメモリに保存されているため、ほとんどの目的には十分に速くアクセスする必要があります。
'lsof'はどのように出力を計算しますか? – malat
それは便利な方法ですが、私のアプリケーション内でその機能を使いたいです。 – nutsman
'それはずっと時間がかかるだろう。なぜ?いくつかのテストをしましたか? –