¿Las funciones POSIX o las extensiones glibc implementan una caminata de árbol de archivos de primer orden?

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

Pregunta

Estoy escribiendo un demonio que utiliza inotify para monitorear el acceso a los archivos y es crítico que no pierda nada en una búsqueda recursiva. Encontré esta idea interesante y he comenzado a implementar

ftw () y ftw64 () no utilizan un algoritmo de amplitud, es más "preordenar". nftw () me da la opción de profundizar primero, pero me preocupan las razas en las hojas superiores.

Espero que me falte algo, ¿tal vez una extensión GNU? ¿O solo estoy buscando implementar la mía con devoluciones de llamadas seguras (algo que realmente preferiría no hacer)?

O, ¿entiendo que las ventajas de amplitud primero sobre profundidad primero son erróneas para este tipo de aplicación?

¿Fue útil?

Solución

Mirando la especificación para ' nftw () ', el indicador FTW_DEPTH realiza un recorrido de orden posterior (profundidad primero), visitando los subdirectorios antes de visitar el nodo del directorio.

No creo que ninguno de los algoritmos estándar realice una búsqueda de amplitud.

Presumiblemente, debería escribir un bfftw () basado en la interfaz nftw (). Tenga en cuenta que debe poner en cola los elementos que se visitarán de forma recursiva (directorios) mientras realiza el análisis.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top