dnotifyに対する利点
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/03/26 04:35 UTC 版)
「inotify」の記事における「dnotifyに対する利点」の解説
inotifyには先行して存在するdnotify(英語版) APIと比べて利点が多いため、dnotifyはinotifyに置き換えられている。dnotifyを使う場合、プログラムは監視用としてディレクトリ毎に1つのファイル記述子を使う必要があるため、プロセス毎のファイル記述子制限に到達した場合にボトルネックとなってしまう。後にこの問題を克服したfanotifyが作られた。さらにリムーバブルメディア使用時にdnotifyがファイル記述子を使うと問題があることも判明した。ファイル記述子はリソースをビジー状態に維持するため、デバイスをアンマウントできないからである。 その他のdnotifyの欠点としては、dnotifyの粒状性レベルが挙げられる。プログラマはディレクトリレベルでしか変更を監視できない。通知メッセージが送られた場合に発生する環境の変更に対する詳細な情報にアクセスするためにはstat構造体を使う必要があるが、stat構造体の使用は必要悪とされる。新規に生成されたstat構造体とそれに対応するキャッシュされたstat構造体との比較が、stat構造体が新規生成される度に行われるからである。 inotify APIはプログラマに対し、dnotifyが使うシグナル通知システムではなく、定着したselectとpollインターフェイスを使えるようにしているため、inotify APIが使うファイル記述子はdnotifyが使うそれよりもはるかに少ない。これにより、inotify APIを(GLibなどの)既存のselectやpollベースのライブラリと統合しやすい。
※この「dnotifyに対する利点」の解説は、「inotify」の解説の一部です。
「dnotifyに対する利点」を含む「inotify」の記事については、「inotify」の概要を参照ください。
- dnotifyに対する利点のページへのリンク