web-dev-qa-db-ja.com

ファイル変更の監視c ++ linux

私はLinuxを使用していますが、サブディレクトリがあるディレクトリがあり、サブディレクトリ内にファイルがあります。ファイルの変更を監視する必要があります。 C++ではブーストを使用しています。 30秒ごとにすべてのディレクトリを調べ、last_write_timeを確認します。主に、それは動作します。しかし、このアクションが実行されるたびに、私のCPUは混乱し、このプログラムだけで15%〜25%のCPU使用率が一番上に表示されます。 inotifyについて読みました。 inotifyを使用する場合、CPU使用率はほぼ同じですか、それとも改善されますか?私がしていることに代わる良い方法はありますか?

15
user1566277

Inotifyを使用する場合、変更があるかどうかを確認するためにすべてのファイルをポーリングする必要はありません。監視対象のファイルまたはディレクトリが変更されたときに通知するコールバックシステムを取得します。

カーネル/ファイルシステムにはすでにこの情報があるため、リソース/ CPU使用率は別のアプリケーションに移動されるだけでなく、実際に削減されます。

inotifyでファイルシステムのアクティビティを監視する は、inotifyを使用する理由の詳細を提供し、その基本的な使用法を示し、セットアップに役立ちます。

16
Veger

http://linux.die.net/man/7/inotify これは、直面している問題を取り除くのに役立つはずです!

2
Saqlain