Readdir 3 C função

Readdir 3 C função

Quando um usuário ingênuo começa a aprender sobre o sistema operacional, ele sabe sobre o sistema de arquivos desse sistema. Um diretório é essencialmente um tipo especial de arquivo que se comporta como um banco de dados de qualquer sistema operacional como Windows, Linux, Unix, etc. O sistema de arquivos da mídia define como os arquivos são categorizados e acessados. Da mesma forma, todas essas informações são armazenadas no diretório, incluindo a localização física do arquivo, nome, data e registro de data e hora, privilégios e outros detalhes necessários.

A função readdir () do POSIX no sistema Linux tem sido amplamente conhecida por ler todos os arquivos e pastas de algum diretório específico. Dentro deste tutorial, examinaremos o uso da função Readdir no Kali Linux.

Precisamos utilizar o “Dirente.arquivo de cabeçalho H ”. Antes de ler os dados de um diretório específico, você precisa abri -los. Use a função Opendir () para obter acesso a um diretório. Está escrito o seguinte no arquivo de cabeçalho “Dirent.h ". Mas, estamos falando sobre a função readdir () aqui. Para adquirir um acesso ao diretório que vamos ler, precisamos utilizar a função Opendir (). O arquivo de cabeçalho “Dirent.H ”contém as definições para ambas as funções. Antes de prosseguir, devemos estar familiarizados com a sintaxe da função readdir (). A seguir, são apresentados os arquivos de cabeçalho de sintaxe e necessidade:

  • #incluir
  • #incluir
  • STRUCT DIRENT *READDIR (DIR *Dirp);

Exemplo 1:

Use Vim ou qualquer outro editor de sua preferência para construir ou abrir um arquivo. Neste caso, readdirfile.c é usado como o nome do arquivo e o editor do VIM é empregado. Quando digitamos este comando e pressionamos o botão Enter no teclado, o editor do VIM abre o arquivo. O comando citado a seguir é executado no Kali Linux:


Para abrir o modo de inserção no VIM, pressione a tecla "Escape" no teclado e pressione o botão 'I' para trazer o modo de inserção. Então, como mostrado na tela seguinte, comece a escrever o código no arquivo. Simplesmente incluímos os arquivos de cabeçalho, definimos e indefinimos a fonte POSIX nas seis primeiras linhas de código.

A função principal começa a construir um diretório denominados Dir, que é necessário, pois o método ondir () retorna um ponteiro de direção. Esta função requer um caminho de string para um diretório. Na linha a seguir, definimos o ponto de estrutura direta de entrada que é posteriormente utilizado na função readdir () para mostrar o nome do diretório no diretório atual especificado. Como você pode ver na instrução IF, aplicamos a função Opendir, que leva o personagem '/' e aponta para o diretório raiz do diretório atual.

Verificamos se o diretório raiz não é nulo na declaração condicional. Se for, exibimos um erro usando a função Perror. A linha “Conteúdo da raiz:” é impressa na declaração else. Em seguida, usando um loop de tempo na função Readdir, verifique se não está retornando nulo, indicando que não há mais diretórios no diretório ou pasta especificada. O nome do diretório é impresso usando uma entrada de variável de ponteiro dentro do bloco de loop while. Depois de fazer o que quiser com o diretório, você pode usar a função fechada () de Posix fora do bloco de loop para fechar o diretório aberto. Vamos salvar o seguinte código primeiro:


Digite o comando como mostrado na imagem a seguir para compilar o código C com o compilador GCC e salve a saída na saída ou arquivo de objeto necessário. Se você não digitar o comando seguindo a bandeira -o, o compilador salvará seu arquivo como um “a.OUT ”arquivo por padrão. Se o evento que o arquivo de saída já existir no diretório, este comando o substituirá. Construímos um “ReadDirFile.OUT ”arquivo de saída em nosso cenário. Se ele compilar corretamente sem erros ou avisos na linha de comando, basta executá -lo. Caso contrário, conserte o código e recombe -o no shell. O comando citado a seguir é executado no Kali Linux:


Para executar o arquivo de saída, use o seguinte comando que exibe a saída do arquivo na tela ou qualquer outro comandos contidos no código. O método readdir em nosso código exibe os nomes dos diretórios da pasta raiz. Isso também exibe os arquivos que existem no diretório. O comando citado a seguir é executado no Kali Linux:

Exemplo 2:

Agora, use o editor Vim para criar um novo arquivo chamado “ReadDirefile2.C ”. Isso criará um novo arquivo e o abrirá no editor. Pressione “Escape” e pressione a tecla 'I' no teclado para ativar o modo de inserção/edição no editor. O comando citado a seguir é executado no Kali Linux:


Depois disso, copie as seguintes linhas de código. O código inicial é o mesmo, mas os nomes de variáveis ​​são alterados. O caminho atual do diretório de trabalho é fornecido à função ondir usando o ponto (.) personagem neste código. Depois disso, veja se retorna nulo ou não. Se ele retornar nulo, use a função Perror para exibir o erro e sair da função principal. A variável de arquivos int é usada para mostrar a numeração do arquivo e da pasta no diretório atual. Incluímos essa variável em 1 no while loop e depois usamos o comando printf para imprimir seu valor junto com o nome do arquivo ou pasta. Fora do while loop, feche o diretório usando o método fechado.


Agora, compila o código e armazene a saída no “Reddirfile2.OUT ”arquivo. O comando citado a seguir é executado no Kali Linux.


O comando "LS" pode ser utilizado para mostrar uma lista de todos os arquivos e pastas em um diretório. O comando citado a seguir é executado no Kali Linux:


Depois de executar o arquivo de saída, o compilador exibe todos os arquivos no terminal que reside no diretório atual. O comando citado a seguir é executado no Kali Linux:

Conclusão

Qualquer sistema de arquivos pode consistir em muitos arquivos e diretórios que mantêm mais dados dentro deles. Este artigo é sobre o uso da função ReadDir de C para ler todos os arquivos e pastas do diretório de trabalho atual do sistema.