2017-08-29 10 views
4

Cコードでいくつかのファイルを保持しているプロセスを見つけたい(Linux)。Cでファイルを保持するプロセスを見つける方法

私の頭に浮かべる1つの方法は、実行中のすべてのプロセスに対してproc/<PID>/fdです。 しかし、それはすべてのプロセスのファイルfdの下ですべてのファイルを掃引するので、非常に時間がかかるでしょう。

もっと軽量な別の方法を教えてください。

ありがとうございます。

+4

'lsof'はどのように出力を計算しますか? – malat

+0

それは便利な方法ですが、私のアプリケーション内でその機能を使いたいです。 – nutsman

+0

'それはずっと時間がかかるだろう。なぜ?いくつかのテストをしましたか? –

答えて

0

/procの下にあるすべての数値疑似ファイルを列挙し、それぞれのfd /ディレクトリを調べるのが標準的な方法です。これは、 "lsof"のようなユーティリティが一般的に実装される方法です。このデータはすべてメモリに保存されているため、ほとんどの目的には十分に速くアクセスする必要があります。

関連する問題