dirent.h
Biblioteca contendo funções e definições de tipos para manipulação de diretórios de arquivos
DIR * opendir( const char * dirname );Abre e retorna um ponteiro para um fluxo de diretório.
struct dirent * readdir( DIR * dir_p );Retorna um ponteira para uma estrutura representando o diretório selecionado no parametro.
int closedir( DIR * dir_p );Fecha um fluxo de diretório.
void rewinddir( DIR * dir_p );Retorna a referência de posição de dir_p para o inicio do diretório.
DIR * scandir( const char * dir_p, int (*filter) (const struc dirent * ), int (*compar) *(const struct dirent **, const struct dirent **) );Varre um diretório, filtra e ordena seu conteúdo.
opendir
DIR * opendir( const char * dirname );
param: const char * dirname - Caminho do diretório a ser aberto.
param: const char * dirname - Caminho do diretório a ser aberto.
A função opendir() abre um fluxo de diretório especificado em dirname.
O fluxo de diretório é retornado na primeira entrada de diretório contida no fluxo. Quando bem sucedida, a função retorna
um ponteiro para o fluxo que poderá ser usado nas funções de leitura(readdir()), fechamento(closedir())
e reinício de fluxo(rewinddir()).
readdir
struct dirent * readdir( DIR * dir_p );
param: DIR * dir_p - Ponteiro para um fluxo de diretório a ser lido.
param: DIR * dir_p - Ponteiro para um fluxo de diretório a ser lido.
A função retorna um ponteiro para uma estrutura reprensenando a entrada de fluxo na posição atual do fluxo especificado
em dir_p e move a posição do fluxo para a próxima entrada contida nele. Ao chegar ao fim do
fluxo, a função retornará null.
Caso alguma referencia do fluxo tenha sido modificada pela chamada assíncrona de outras funções de manipulação de fluxo,
o retorno de uma nova chamada de readdir() será inespecífico.
closedir
int closedir( DIR * dir_p );
param: DIR * dir_p - Ponteiro para um fluxo de diretório a ser fechado.
param: DIR * dir_p - Ponteiro para um fluxo de diretório a ser fechado.
Fecha um fluxo de diretório. Após seu uso, o ponteiro especificado em dir_p não apontará mais para um
local válido.
rewinddir
void rewinddir( DIR * dir_p );
param: DIR * dir_p - Ponteiro para um fluxo de diretório a ser reiniciado.
param: DIR * dir_p - Ponteiro para um fluxo de diretório a ser reiniciado.
Retorna a referência de entrada do fluxo para a primeira entrada, reiniciando o fluxo de diretório.
scandir
int scandir( const char *dir_p, int(*filter)(const struct dirent *),
int(*compar)(const struct dirent **, const struct dirent **) );
param: const char * dir_p - Caminho do diretório a ser varrido.
param: int (*filter) - Ponteiro para função de filtragem de itens do diretório.
param: int (*compar) - Ponteiro para função de comparação e ordenação de itens do diretório.
param: const char * dir_p - Caminho do diretório a ser varrido.
param: int (*filter) - Ponteiro para função de filtragem de itens do diretório.
param: int (*compar) - Ponteiro para função de comparação e ordenação de itens do diretório.
A função scandir() varre o diretório especificado pelo caminho dir_p
e adiciona em namelist() as entradas onde a função especificada em filter()
retornar valores diferentes de zero, que então são ordenadas, usualmente via qsort, pela função especificada em compar().
Esta função é bastante conveniente para problemas de listagem e/ou seleção de entradas nos diretórios.