Lorsqu'un utilisateur naïf commence à se renseigner sur le système d'exploitation, il apprend à connaître le système de fichiers de ce système. Un répertoire est essentiellement un type spécial de fichier qui se comporte comme une base de données de tout système d'exploitation comme Windows, Linux, Unix, etc. Le système de fichiers du support définit comment les fichiers sont classés et accessibles. De même, toutes ces informations sont stockées dans le répertoire, y compris l'emplacement physique, le nom, la date et les horodatages du fichier, les privilèges et autres détails requis.
La fonction readdir () de POSIX dans le système Linux a été largement connue pour lire tous les fichiers et dossiers à partir d'un répertoire spécifique. Dans ce tutoriel, nous examinerons l'utilisation de la fonction ReadDir dans Kali Linux.
Nous devons utiliser le «Dirent.Fichier d'en-tête h ”. Avant de lire les données d'un répertoire particulier, vous devez l'ouvrir. Utilisez la fonction OpenDir () pour accéder à un répertoire. Il est écrit comme suit dans le fichier d'en-tête «Dirent.h ”. Mais, nous parlons de la fonction ReadDir () ici. Pour acquérir un accès au répertoire que nous allons lire, nous devons utiliser la fonction OpenDir (). Le fichier d'en-tête «Dirent.H ”contient les définitions des deux fonctions. Avant de continuer, nous devons être familiers avec la syntaxe de la fonction ReadDir (). Voici la syntaxe et les fichiers d'en-tête requis:
Exemple 1:
Utilisez VIM ou tout autre éditeur de votre préférence pour créer ou ouvrir un fichier. Dans ce cas, reddirfile.C est utilisé comme nom de fichier et l'éditeur VIM est employé. Lorsque nous tapons cette commande et appuyons sur le bouton Entrée du clavier, l'éditeur VIM ouvre le fichier. La commande citée suivante est exécutée dans Kali Linux:
Pour ouvrir le mode d'insertion dans VIM, appuyez sur la touche «Escape» sur le clavier, puis appuyez sur le bouton «I» pour afficher le mode d'insertion. Ensuite, comme indiqué sur l'écran suivant, commencez à écrire le code dans le fichier. Nous incluons simplement les fichiers d'en-tête, définissons et indéfinis la source POSIX dans les six premières lignes de code.
La fonction principale commence alors à construire un répertoire nommé de pointeur DIR, qui est requis car la méthode OpenDir () renvoie un pointeur DIR. Cette fonction nécessite un chemin de chaîne vers un répertoire. Dans la ligne suivante, nous définissons le point de structure directe de l'entrée qui est utilisé plus tard dans la fonction readdir () pour afficher le nom du répertoire dans le répertoire actuel spécifié. Comme vous pouvez le voir dans l'instruction IF, nous avons appliqué la fonction OpenDir qui prend le caractère '/' et pointe vers le répertoire racine du répertoire actuel.
Nous vérifions si le répertoire racine n'est pas nul dans l'instruction conditionnelle. Si c'est le cas, nous affichons une erreur en utilisant la fonction Perror. La ligne «Contenu de Root:» est imprimée dans l'instruction ELSE. Ensuite, en utilisant une boucle de temps sur la fonction ReadDir, vérifiez qu'il ne renvoie pas NULL, indiquant qu'il n'y a plus de répertoires dans le répertoire ou le dossier spécifié. Le nom du répertoire est imprimé à l'aide d'une entrée de variable de pointeur à l'intérieur du bloc de boucle while. Après avoir fait ce que vous voulez avec le répertoire, vous pouvez utiliser la fonction fermée () de POSIX à l'extérieur du bloc de boucle while pour fermer le répertoire ouvert. Enregistrons d'abord le code suivant:
Tapez la commande comme indiqué dans l'image suivante pour compiler le code C avec le compilateur GCC et enregistrer la sortie dans la sortie ou le fichier objet requis. Si vous ne tapez pas la commande en suivant l'indicateur -o, le compilateur enregistre votre fichier en tant que «A.Fichier out »par défaut. Si l'événement dans lequel le fichier de sortie existe déjà dans le répertoire, cette commande l'écrasera. Nous avons construit un «Readdirfile.Fichier de sortie out dans notre scénario. S'il se compile correctement sans erreurs ni avertissements dans la ligne de commande, il suffit de l'exécuter. Sinon, corrigez le code et recompilez-le sur le shell. La commande citée suivante est exécutée dans Kali Linux:
Pour exécuter le fichier de sortie, utilisez la commande suivante qui affiche la sortie du fichier sur l'écran ou toute autre commande contenue dans le code. La méthode ReadDir de notre code affiche les noms des répertoires du dossier racine. Cela affiche également les fichiers qui existent dans le répertoire. La commande citée suivante est exécutée dans Kali Linux:
Exemple 2:
Maintenant, utilisez l'éditeur VIM pour créer un nouveau fichier appelé "ReaddireFile2.C ". Cela créera un nouveau fichier et l'ouvrira dans l'éditeur. Appuyez sur «Escape» et appuyez sur la touche 'I' sur le clavier pour activer le mode INSERT / EDIT dans l'éditeur. La commande citée suivante est exécutée dans Kali Linux:
Après cela, copiez les lignes de code suivantes. Le code initial est le même, mais les noms de variables sont modifiés. Le chemin du répertoire de travail actuel est fourni à la fonction OpenDir à l'aide du point (.) Caractère dans ce code. Après cela, voyez s'il retourne null ou non. S'il renvoie NULL, utilisez la fonction Perror pour afficher l'erreur et quitter la fonction principale. La variable INT Fichiers est utilisée pour afficher la numérotation des fichiers et des dossiers dans le répertoire actuel. Nous avons incrémenté cette variable de 1 dans la boucle while, puis utilisé la commande printf pour imprimer sa valeur avec le nom du fichier ou du dossier. En dehors de la boucle while, fermez le répertoire en utilisant la méthode CLOLIRIR.
Maintenant, compilez le code et stockez la sortie dans le «reddirfile2.fichier out ». La commande citée suivante est exécutée dans Kali Linux.
La commande «LS» peut être utilisée pour afficher une liste de tous les fichiers et dossiers d'un répertoire. La commande citée suivante est exécutée dans Kali Linux:
Après avoir exécuté le fichier de sortie, le compilateur affiche tous les fichiers du terminal qui réside dans le répertoire actuel. La commande citée suivante est exécutée dans Kali Linux:
Conclusion
Tout système de fichiers peut composer de nombreux fichiers et répertoires qui contiennent plus de données. Cet article concerne l'utilisation de la fonction ReadDir de C pour lire tous les fichiers et dossiers du répertoire de travail actuel du système.