Funzione readdir 3 c

Funzione readdir 3 c

Quando un utente ingenuo inizia a conoscere il sistema operativo, è a conoscenza del file system di quel sistema. Una directory è essenzialmente un tipo speciale di file che si comporta come un database di qualsiasi sistema operativo come Windows, Linux, Unix, ecc. Il file system del media definisce come i file sono classificati e accessibili. Allo stesso modo, tutte queste informazioni sono archiviate nella directory, inclusi la posizione fisica, il nome, la data e i timestamp del file, i privilegi e altri dettagli richiesti.

La funzione readdir () di posix nel sistema Linux è stata ampiamente nota per aver letto tutti i file e le cartelle di una directory specifica. All'interno di questo tutorial, esamineremo l'uso della funzione Readdir in Kali Linux.

Dobbiamo utilizzare il "diretto.File di intestazione h ". Prima di leggere i dati da una particolare directory, è necessario aprirli. Utilizzare la funzione Opendir () per ottenere un accesso a una directory. È scritto come segue nel file di intestazione "Dirent.H". Ma stiamo parlando della funzione readdir () qui. Per acquisire un accesso alla directory che leggeremo, dobbiamo utilizzare la funzione Opendir (). Il file di intestazione “Dirent.h "contiene le definizioni per entrambe le funzioni. Prima di procedere, dobbiamo avere familiarità con la sintassi della funzione readdir (). Di seguito sono riportati la sintassi e i file di intestazione richiesti:

  • #includere
  • #includere
  • struct dirent *readdir (dir *Dirp);

Esempio 1:

Usa VIM o qualsiasi altro editor della tua preferenza per creare o aprire un file. In questo caso, readdirfile.C viene utilizzato come nome file e viene impiegato l'editor VIM. Quando digitiamo questo comando e premiamo il pulsante INVIO sulla tastiera, l'editor VIM apre il file. Il seguente comando citato viene eseguito in Kali Linux:


Per aprire la modalità Insert in VIM, premere il tasto "Escape" sulla tastiera e quindi premere il pulsante "I" per visualizzare la modalità di inserzione. Quindi, come mostrato nella schermata seguente, inizia a scrivere il codice nel file. Includiamo semplicemente i file di intestazione, definire e indefinire la sorgente posix nelle prime sei righe di codice.

La funzione principale inizia quindi a costruire un puntatore dir chiamato Directory, che è richiesto poiché il metodo Opendir () restituisce un puntatore DIR. Questa funzione richiede un percorso di stringa a una directory. Nella riga seguente, definiamo il punto della struttura diretta della voce che viene successivamente utilizzato nella funzione readdir () per mostrare il nome della directory nella directory corrente specificata. Come puoi vedere nell'istruzione IF, abbiamo applicato la funzione Opendir che porta il carattere '/' e indica la directory principale della directory corrente.

Controlliamo se la directory principale non è nulla nell'istruzione condizionale. Se lo è, visualizziamo un errore utilizzando la funzione Perror. La linea "Contenuto della radice:" è stampata nell'istruzione ELSE. Quindi, usando un ciclo while sulla funzione readdir, verificare che non stia tornando null, indicando che non ci sono più directory nella directory o nella cartella specificata. Il nome della directory viene stampato utilizzando una voce variabile puntatore all'interno del blocco ad anello while. Dopo aver fatto quello che vuoi con la directory, puoi usare la funzione chiusura () di posix al di fuori del blocco di loop while per chiudere la directory aperta. Salviamo prima il seguente codice:


Digitare il comando come mostrato nella seguente immagine per compilare il codice C con il compilatore GCC e salvare l'output sull'output richiesto o il file oggetto. Se non si digita il comando seguendo il flag -o, il compilatore salverà il tuo file come "A.File out "per impostazione predefinita. Se l'evento che il file di output esiste già nella directory, questo comando lo sovrascriverà. Abbiamo costruito un "readdirfile.file di output nel nostro scenario. Se si compila correttamente senza errori o avvertimenti nella riga di comando, eseguilo. Altrimenti, correggi il codice e ricompilalo sulla shell. Il seguente comando citato viene eseguito in Kali Linux:


Per eseguire il file di output, utilizzare il comando seguente che visualizza l'output del file sullo schermo o qualsiasi altro comando contenuto nel codice. Il metodo readdir nel nostro codice visualizza i nomi delle directory della cartella root. Questo visualizza anche i file esistenti nella directory. Il seguente comando citato viene eseguito in Kali Linux:

Esempio 2:

Ora, usa l'editor VIM per creare un nuovo file chiamato "ReadDireFile2.C". Questo creerà un nuovo file e lo aprirà nell'editor. Premere "Escape" e premere il tasto "I" sulla tastiera per abilitare la modalità insert/modifica nell'editor. Il seguente comando citato viene eseguito in Kali Linux:


Successivamente, copia le seguenti righe del codice. Il codice iniziale è lo stesso, ma i nomi delle variabili vengono modificati. L'attuale percorso della directory di lavoro viene fornita alla funzione Opendir utilizzando il punto (.) carattere in questo codice. Dopodiché, vedi se restituisce null o no. Se restituisce null, utilizzare la funzione Perror per visualizzare l'errore ed uscire dalla funzione principale. La variabile INT FILE viene utilizzata per mostrare la numerazione del file e della cartella nella directory corrente. Abbiamo incrementato questa variabile per 1 nel ciclo while, quindi abbiamo usato il comando printf per stampare il suo valore insieme al nome del file o della cartella. Al di fuori del ciclo while, chiudere la directory usando il metodo chiuso.


Ora, compila il codice e memorizza l'output in "ReddirFile2.File fuori ". Il seguente comando citato viene eseguito in Kali Linux.


Il comando "LS" può essere utilizzato per mostrare un elenco di tutti i file e le cartelle in una directory. Il seguente comando citato viene eseguito in Kali Linux:


Dopo aver eseguito il file di output, il compilatore visualizza tutti i file nel terminale che risiede nella directory corrente. Il seguente comando citato viene eseguito in Kali Linux:

Conclusione

Qualsiasi file system può consistere in molti file e directory che contengono più dati al loro interno. Questo articolo parla dell'uso della funzione readdir di C per leggere tutti i file e le cartelle dell'attuale directory di lavoro del sistema.