Fonction ouverte POSIX en C

Fonction ouverte POSIX en C
Bien qu'il y ait beaucoup de bibliothèques en C, la bibliothèque POSIX est très connue parmi les développeurs en raison de sa large gamme de fonctions d'appel système, en particulier les appels de la fonction système pour les «fichiers». La bibliothèque POSIX pour le système d'exploitation Linux vous offre une variété de fonctions. Il existe une fonction ouverte () qui est délibérément utilisée pour ouvrir un fichier spécifique à partir d'un système dans l'un de ces appels POSIX. Il utilise de nombreuses options pour créer, ouvrir, lire, écrire et faire beaucoup de choses sur les fichiers Linux.

Exemple 1:
Jetons un coup d'œil au premier exemple pour utiliser la fonction Open () de POSIX pour simplement créer et ouvrir les fichiers en mode en lecture seule. Pour cela, utilisez la requête tactile dans votre shell pour créer un fichier C. Il peut être enregistré dans le dossier de travail actuel.

Ouvrez votre fichier nouvellement généré, je.e. ouvrir.C, dans l'éditeur pour ajouter un extrait de code à l'intérieur comme dans l'image présentée. Démarrez votre code avec l'utilisation des en-têtes standard C comme STdio.H, fcntl.h, et errno.h qui sont délibérément inclus pour les entrées / sorties standard, l'utilisation du dépôt et affichent respectivement les erreurs. Il existe une fonction Main () pour effectuer l'exécution. Nous créons une variable entière «F» qui est utilisée comme descripteur de fichier pour obtenir la valeur renvoyée de l'appel de fonction «Open ()». La fonction Open () utilise le nom du fichier texte avec deux options - l'option "O_RDONLY" pour lire le fichier déjà existant et l'option "O_Creat" pour créer un fichier s'il n'existe pas.

L'instruction printf () affiche la valeur renvoyée à l'aide du descripteur «F». La valeur de «F» est égale à «-1». Il lance une erreur que nous n'avons pas ouvert ou créé un fichier avec un message d'erreur via la fonction perror (). Sinon, l'instruction printf () affiche le message de réussite sur notre écran. Le code est terminé à l'aide de l'instruction RETRAIT 0.

#inclure
#inclure
#inclure
int main()
int f = ouvert ("Nouveau.txt ", o_rdonly | o_creat);
printf ("File Descripteur Value =% D \ n", f);
if (f == -1)
perror ("n'a pas réussi à créer / ouvrir un fichier… \ n);
autre
printf ("Fichier créé avec succès!\ n ");
retour 0;

Une fois le code enregistré avec succès, nous le compilons avec l'outil «GCC» en ligne de commande comme le compilateur C disponible dans le système Linux. Écrivez le mot-clé «GCC» avec le nom d'un fichier «Ouvrir.C ”et exécutez-le. La compilation est prospère, et nous essayons le «./un.requête out pour exécuter le code compilé. La sortie montre la valeur de «F» ainsi qu'un message de réussite qui indique que nous avons finalement créé un nouveau fichier texte avec succès. La sortie d'instruction «LS» montre le rouge surligné «Nouveau.Fichier txt "créé par l'option" O_Creat "de la fonction Open () dans le dossier de travail actuel.

Utilisons le même code pour obtenir une erreur si la fonction open () se trouve incapable de lire un fichier qui n'existe pas dans le système. En utilisant la même structure du code, nous mettons à jour la première ligne de code de la fonction principale (). Ici, nous supprimons l'option "O_Creat" pour créer un nouveau fichier à l'aide de l'appel de fonction Open () et utilisons uniquement l'option "O_Rdonly".

De plus, nous modifions le nom d'un fichier pour «tester.txt ”qui n'existe pas dans notre dossier de travail. Cela signifie que la fonction Open () n'est pas en mesure d'ouvrir le fichier et que la fonction Perror () affiche le message d'erreur respectif à la console. Enregistrons ce fichier C mis à jour.

#inclure
#inclure
#inclure
int main()
int f = ouvert ("Test.txt ", o_rdonly);
printf ("File Descripteur Value =% D \ n", f);
if (f == -1)
Perror ("Erreur: [Échec d'ouvrir un fichier] :);
autre
printf ("Le fichier s'est ouvert avec succès!\ n ");
retour 0;

Exécuter le fichier après l'exécution lance l'erreur «pas de fichier ou de répertoire».

Exemple 2:
Vous pouvez utiliser l'appel de fonction Open () pour lire une chaîne de données à partir d'un fichier spécifique à l'aide des tableaux. Pour cela, vous avez juste besoin de «Unistd.h ”et« fcntl.Bibliothèques H ”. L'exécution de code part à partir de sa méthode principale «main ()» qui déclare un tableau de type de caractère «A» de taille 30. Le descripteur de fichier entier utilise la valeur renvoyée de l'appel de fonction Open (). La fonction Open () utilisée ici jette son option «O_Rdonly» pour l'ouvrir en mode en lecture seule. La fonction read () sur la ligne suivante est utilisée pour stocker un total de 12 caractères du «fichier.txt ”en utilisant son descripteur« f »et enregistrez-le dans le tableau des caractères« A ».

Si la fonction read () réussit à lire les données d'un fichier, il renvoie une valeur à la variable «n». L'appel de fonction écrite () utilise la variable «n» pour écrire les données sur la console qui viennent d'être enregistrées sur le tableau «A».

#inclure
#inclure
int main()
char a [30];
int f = ouvert ("fichier.txt ", o_rdonly);
int n = read (f, a, 12);
écrire (1, a, n);

Maintenant, nous devons créer le fichier texte du même nom «Fichier.txt »dans le même dossier et ajoutez-y quelques données de texte comme présenté en utilisant l'instruction« Cat »de Linux. Nous compilons et exécutons notre «ouvert.C ”Fichier et obtenez les 12 premiers caractères du« fichier.txt »sont affichés sur la coque.

Exemple 3:
Vous pouvez utiliser l'appel de fonction Open () pour copier les données texte d'un fichier à un autre avec une légère modification du code. Nous avons rejeté le même exemple d'extrait de code et apportons quelques modifications à quelques-unes de ses lignes. La taille du tampon de caractère «A» est mise à jour à 50 et le descripteur F1 ouvre le fichier «Fichier.txt "dans un mode" en lecture seule "en utilisant la fonction" o_rdonly "dans une fonction open (). La fonction read () utilise le descripteur «F1» pour lire 25 caractères dans le «fichier.TXT ”Fichier et enregistrez-les dans le tableau tampon" A ". La valeur de réussite / de défaillance renvoyée est enregistrée en variable «n».

Un autre descripteur de fichier «F2» est utilisé ici pour créer un nouveau fichier nommé «Source.txt "dans le même dossier en utilisant l'option" 0_creat "dans une méthode" ouverte "et avec un mode" écriture uniquement "(O_Wronly) avec la valeur 0642 à écrire. L'appel de fonction écrite () utilise la valeur «n» pour obtenir les données du tampon de caractère «A» et l'analyser au deuxième fichier «Source.txt ”en utilisant son descripteur« f2 ». Maintenant, exécutons le code suivant pour voir ce que nous obtenons dans la sortie:

#inclure
#inclure
int main()
char a [50];
int f1 = ouvert ("fichier.txt ", o_rdonly);
int n = read (f1, a, 25);
int f2 = ouvert ("Source.txt ", o_creat | o_wronly, 0642)
écrire (f2, a, n);

Maintenant, nous avons un «fichier.txt "et" ouvert.Fichier C ”dans le dossier actuel. Vous pouvez voir les données dans le «fichier.SMS". Dans le «ouvert.C ”Exécution de fichiers, la source.Le fichier txt est généré et les 25 caractères du «fichier.Le fichier txt "est copié dans la" source.Fichier txt »également.

Conclusion

Ce guide est simple mais plein d'exemples à utiliser et à apprendre l'appel de fonction POSIX «Open ()». En utilisant tous les exemples donnés, vous n'échouerez jamais en utilisant les fichiers en C.