Des fonctions POSIX ou des extensions glibc implémentent-elles une arborescence de fichiers étendue?

StackOverflow https://stackoverflow.com/questions/1647572

Question

J'écris un démon qui utilise inotify pour surveiller l'accès aux fichiers et il est essentiel de ne rien manquer d'une recherche récursive. J'ai trouvé cette idée intéressante et ont commencé à être mis en œuvre il.

ftw () et ftw64 () n'utilisent pas d'algorithme de largeur d'abord, mais plutôt un "précommande". nftw () me donne l'option de la profondeur d'abord, mais je suis inquiet à propos des races dans les feuilles supérieures.

J'espère qu'il me manque quelque chose, peut-être une extension GNU? Ou est-ce que je cherche simplement à mettre en place le mien avec des rappels sécurisés (quelque chose que je préfère ne pas faire)?

Ou bien ma compréhension des avantages de la largeur d'abord sur la profondeur d'abord est-elle erronée pour ce type d'application?

Était-ce utile?

La solution

En regardant les spécifications de ' nftw () ", l'indicateur FTW_DEPTH effectue une traversée après la commande (en commençant par la profondeur), en visitant les sous-répertoires avant de visiter le nœud d'annuaire.

Je ne pense pas que les algorithmes standard fassent une recherche en largeur d'abord.

Vraisemblablement, vous devriez écrire un bfftw () basé sur l'interface nftw (). Notez que vous devez mettre en file d'attente les éléments à visiter (répertoires) lors de l'analyse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top