Frage

Ich schreibe ein Dämon, der inotify Dateizugriff zu überwachen, nutzt und es ist wichtig, dass ich nicht alles auf eine rekursive Suche verpassen. Ich fand diese interessante Idee und haben damit begonnen, zu implementieren, es.

ftw () und ftw64 () keine Breiten ersten Algorithmus, seine mehr "pre-order" verwenden. (Nftw) gibt mir die Möglichkeit, zuerst in der Tiefe, aber ich mache mir Sorgen um Rennen in oberen Blättern.

Ich hoffe, dass ich etwas fehle, vielleicht eine GNU-Erweiterung? Oder bin ich mein eigenes mit Typ-sichere Rückrufe gerade auf der Suche (etwas würde ich wirklich lieber nicht tun) bei der Umsetzung?

Oder ist mein Verständnis der Vorteile der Breite beginn über Tiefen erste fehlerhafte für diese Art der Anwendung?

War es hilfreich?

Lösung

Mit Blick auf die Spezifikation für ' nftw () ', die FTW_DEPTH Flagge hat eine Post-Order (Tiefe zuerst) Traversal, die Unterverzeichnisse zu besuchen, bevor Sie den Verzeichnisknoten zu besuchen.

Ich glaube nicht, dass die Standard-Algorithmen hat eine Breitensuche.

Vermutlich sollten Sie eine bfftw () schreiben, basierend auf der nftw () Schnittstelle. Beachten Sie, dass Sie die Elemente in der Warteschlange haben rekursiv (Verzeichnisse) besucht werden, während der Scan zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top