inotify の仕組みを教えてください。私はそれについてウェブで検索しましたが、私が理解したのは、ファイルの変更を確認したい場合は、「読み取り」機能でポーリングを行う必要があるということです。ポーリングせずにファイルが変更されたときに通知するコールバック関数はありますか?
ありがとう、
イベントを処理する GUI ライブラリを使用していると推測しています。
優れた GUI ライブラリには、ファイル記述子を監視する方法があります。GTK ではgtk_input_add_fullです。Qt では、QSocketNotifierが機能する場合があります。
libev ライブラリの ev_io 部分を使用できます。これにより、inotify fd が読み取り可能になったときのコールバックを設定できます。
libev のドキュメントは、http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod にあります。
inotify 呼び出しは、ファイル記述子を使用します。ポーリングする代わりに、返された FD をselect()ファミリーの呼び出しで使用できます。これは正確にはコールバック関数ではありませんが、懸念されるオーバーヘッドを削減します。
いいえ、inotifyにはポーリングが必要です。
(提案されているように)シグナルを使用してコールバックを登録すると、IMOは通常のポーリングを実行するよりも悪くなります。