3

私はinotifyを利用してファイルアクセスを監視するデーモンを書いていますが、再帰検索で何も見逃さないことが重要です。私はこの興味深いアイデアを見つけ、それを実装し始めました。

ftw()およびftw64()は、幅優先アルゴリズムを使用せず、より「事前注文」します。nftw()には深さ優先のオプションがありますが、上葉のレースが心配です。

何か、おそらくGNU拡張機能が不足していることを望んでいますか?それとも、タイプセーフなコールバックを使用して独自のコールバックを実装することを検討しているだけですか(実際には実行したくないことです)。

または、このタイプのアプリケーションでは、幅優先探索と深さ優先探索の利点についての私の理解は誤りですか?

4

1 に答える 1

1

' nftw() 'の仕様を見ると、FTW_DEPTHフラグは、ディレクトリノードにアクセスする前にサブディレクトリにアクセスして、ポストオーダー(深さ優先)トラバーサルを実行します。

標準的なアルゴリズムのいずれも幅優先探索を行うとは思いません。

おそらく、nftw()インターフェイスに基づいてbfftw()を作成する必要があります。スキャンの実行中は、再帰的にアクセスするアイテム(ディレクトリ)をキューに入れる必要があることに注意してください。

于 2009-10-30T03:39:51.980 に答える