Não quaisquer funções POSIX ou extensões glibc implementar uma caminhada árvore de arquivos em largura?

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

Pergunta

Eu estou escrevendo um daemon que utiliza iNotify para acesso a arquivos do monitor e é fundamental que eu não perca nada em uma pesquisa recursiva. Eu encontrei esta ideia interessante e começaram a implementar -lo.

ftw () e ftw64 () não usam um algoritmo em largura, o seu mais "pré-encomenda". nftw () me dá a opção de profundidade-primeiro, mas estou preocupado com corridas em folhas superiores.

Eu estou esperando que eu estou faltando alguma coisa, talvez uma extensão GNU? Ou estou apenas olhando para implementar o meu próprio com costas tipo de chamada segura (algo que eu realmente prefiro não fazer)?

Ou, é o meu entendimento das vantagens em largura ao longo errônea em profundidade para este tipo de aplicação?

Foi útil?

Solução

Olhando para o spec para ' nftw () ', a bandeira FTW_DEPTH faz um pós-ordem (profundidade primeiro) transversal, visitando os sub-diretórios antes de visitar o nó diretório.

Eu não acho que qualquer um dos algoritmos padrão fazer uma busca em largura.

Provavelmente, você deve escrever uma bfftw () baseado na interface nftw (). Note que você fila os itens a serem visitados de forma recursiva (diretórios) ao fazer a verificação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top