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

J’écris un démon qui utilise inotify pour surveiller l’access aux fichiers et il est essentiel que je ne manque de rien lors d’une recherche récursive. J’ai trouvé cette idée intéressante et j’ai commencé à la mettre en œuvre.

ftw () et ftw64 () n’utilisent pas d’algorithme de largeur d’abord, mais plutôt de “précommande”. nftw () me donne l’option de la profondeur d’abord, mais je m’inquiète 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 œuvre le mien avec des rappels de type 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?

En regardant la spécification pour ‘ nftw () ‘, l’indicateur FTW_DEPTH effectue une traversée de post-commande (profondeur d’abord), visitant les sous-répertoires avant de visiter le nœud de répertoire.

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

Vraisemblablement, vous devriez écrire un bfftw () basé sur l’interface nftw (). Notez que vous devez mettre en queue les éléments à visiter (répertoires) lors de l’parsing.