Fonction RealPath 3 C

Fonction RealPath 3 C
En travaillant sur les systèmes d'exploitation Linux ou Windows, vous pouvez rencontrer de nombreux fichiers et répertoires. Tous les fichiers et répertoires de tout système d'exploitation possèdent un chemin à côté de leur répertoire racine. Dans de nombreux systèmes d'exploitation, ce chemin peut être vu en haut de l'explorateur de fichiers pour un fichier ou un dossier particulier. La bibliothèque POSIX C a proposé la fonction «RealPath» pour afficher le chemin complet et original de tout fichier du répertoire actuel particulier. Commençons dans le système d'exploitation Kali Linux.

Exemple 1:

Dans notre premier exemple, nous examinerons le code C simple de l'utilisation de la fonction «realPath» pour obtenir le chemin réel et entier de certains fichiers du répertoire de travail actuel du système. Nous devons utiliser un total de 6 fichiers d'en-tête de base au début de ce code inclus avec l'utilisation du mot-clé «#include». Certaines bibliothèques sont des bibliothèques standard pour utiliser le flux de sortie d'entrée dans le code, certains sont là pour utiliser les valeurs de chaîne, et certains sont utilisés pour effectuer la gestion des exceptions. La fonction principale () de ce code définit un tableau de type caractéristique appelé «tampon» avec une taille intégrée de «Path Max» ou 0. Ce tableau est utilisé pour sauver le chemin réel et complet de certains répertoires.

La fonction realPath () prend le «Somefile.Nom de fichier txt »avec le tableau« tampon »qui lui est transmis comme argument pour stocker tout le chemin. Un «chemin» de pointeur du type de caractère est initialisé pour pointer vers l'adresse d'une variable «tampon» contenant le chemin d'un fichier passé par la fonction realPath ().

Ici, vient l'instruction «if-else» pour vérifier si nous avons obtenu la bonne référence pour le chemin du fichier ou si le pointeur «chemin» est vide. S'il renvoie la référence correcte, la fonction printf est utilisée pour afficher le texte «Le chemin du fichier complet de certains fichiers.txt: "ainsi que le vrai chemin du fichier particulier. Sinon, l'instruction ELSE est exécutée et l'instruction PRINTF utilisée à l'intérieur lancera une erreur en utilisant la fonction «Strerror», prenant le «errno» comme argument. La fonction Perror est utilisée pour afficher à nouveau la même erreur avec le nom d'erreur «realPath». Pour obtenir l'erreur, la fonction de sortie de ce code met fin au programme dès que possible. Enregistrons notre premier exemple et compilons pour voir ses résultats.


Nous utilisons le compilateur GCC pour compiler le RealPath.Fichier C avec l'option -o pour générer son fichier d'objet nommé «RealPath.out »dans le même répertoire de travail. Cette commande est réussie et nous avons obtenu le même fichier d'objet dans le répertoire «SRC» à la maison selon la sortie de l'instruction «LS».


Maintenant, nous exécutons le fichier d'objet que nous venons de créer avec le «./ "Caractères dans le même répertoire de travail. La sortie de cette commande nous montre le chemin complet de ce fichier particulier à partir du dossier racine comme le «/ home / linux / src / somefile.SMS".

Exemple 2:

Commençons par un autre exemple pour utiliser la fonction realPath () pour obtenir le chemin réel de certains fichiers. Dans ce code C, nous avons ajouté les mêmes 6 fichiers d'en-tête avec le mot-clé «#include». Après cela, la fonction principale () est initialisée avec la variable de pointeur de caractères «chemin de liaison» qui stocke un chemin comme le «/ src / quelque part.SMS". Un tableau de «chemin réel» est utilisé pour stocker le vrai chemin du «Somefile.Fichier txt "avec" +1 "pour récupérer le chemin d'accès d'un fichier mentionné après le deuxième caractère" / ". Un autre pointeur «ptr» du type de caractère est défini.

Nous passons la variable du pointeur de chemin de liaison et le tableau de chemin réel à la fonction realPath () pour obtenir l'ensemble du chemin du «/ src / quelque part.txt ”au tableau« chemin réel ». Le résultat renvoyé est enregistré dans la variable du pointeur «PTR». Dans la partie «if», si le «ptr» renvoie le résultat par la fonction realPath () qui contient un numéro de référence, l'instruction printf affiche le chemin réel via le tableau de chemin réel. Sinon, la partie ELSE de ce code est exécutée et génère une erreur via l'utilisation de la fonction Strteurror à l'aide de la variable «Errno» comme argument. La fonction de sortie consiste à résilier ce programme.


Nous avons compilé ce code C avec le compilateur GCC et créé son «RealPath1.Fichier d'objet Out ”précédé par l'option -o.


Après avoir exécuté son fichier d'objet avec le «./ »Caractère, nous avons eu l'erreur parce que nous n'avons pas fourni le format correct du chemin du fichier« / src / somefile.SMS".


Mise à jour le code à nouveau pour éviter cette erreur peu de temps après l'exécution du fichier d'objet. Nous mettons à jour sa première ligne dans la fonction principale,. Le pointeur de type de caractère «chemin de liaison» qui contient le fichier spécifique avec un dossier ci-dessous dans ceci est mis à jour. Maintenant, nous ajoutons le nom d'un «Somefile.Fichier txt "qui réside dans le répertoire de travail actuel" SRC "au lieu du" / src / de certains.Txt ”Chemin vers le dossier de répertoire de travail. Le reste du code est utilisé sans aucun changement. Enregistrer et exécuter ce code pour voir les résultats.


Après avoir compilé ce fichier C avec le compilateur GCC et créé son «RealPath1.Fichier d'objet Out »avec l'objet -o, il est prêt à être exécuté.


Après l'exécution du fichier d'objet C, le chemin réel et complet du fichier spécifique «Somefile.txt »est affiché sur l'écran du terminal.

Conclusion

Cet article concerne l'utilisation de la méthode RealPath de la bibliothèque POSIX C pour afficher le chemin réel et complet d'un fichier spécifique. Pour cela, nous avons essayé les deux exemples C sur la plate-forme Kali Linux. Dans nos exemples, nous avons examiné comment cette fonction réagit à un seul nom de fichier ou avec un chemin spécifique.