0

私のLinux C++アプリケーションに実装したいのですが、信号でinotifyします。ファイルに変更があったときに、アプリケーションでイベントを取得する必要があります。(ポーリングなし)

inotify の man ページから:

Linux 2.6.25 以降、シグナル駆動の I/O 通知が inotify ファイル記述子で利用可能になりました。fcntl(2) の F_SETFL (O_ASYNC フラグの設定用)、F_SETOWN、および F_SETSIG の説明を参照してください。シグナルハンドラに渡される siginfo_t 構造体 (sigaction(2) で説明) には、次のフィールドが設定されています。 si_fd は inotify ファイル記述子番号に設定されます。si_signo はシグナル番号に設定されます。si_code は POLL_IN に設定されています。POLLIN は si_band に設定されます。

やり方が分からなかったので、サンプルを送ってもらえますか?

10!

4

2 に答える 2

2

本当にシグナルアプローチが必要ですか?inotifyを使用する最も一般的な方法は、toselectまたはpollファイル記述子です。長時間実行されているアプリケーションがある場合は、とにかくこれらの関数を呼び出す可能性が高く、必要なのは追加のinotifyファイル記述子を渡すことだけです。

于 2010-11-02T14:00:15.377 に答える