Comment utiliser l'appel système d'écriture en C

How Use Write System Call C



L'appel système sert de passerelle principale entre les programmes et le noyau du système d'exploitation Linux. Bien que vous ayez presque certainement besoin d'un appel système tout au long de votre carrière en programmation C, que vous visiez une productivité exceptionnelle ou un certain style de fonctionnalité, le référentiel Glibc ou d'autres bibliothèques standard trouvées dans les distributions Linux populaires suffiront à la grande majorité de vos conditions. Dans ce guide, nous allons établir un concept sur l'appel Write System en langage C.

Syntaxe:

#comprendre

taille_técrivez(int fd, const void*buf, size_t compte);

Dans cette syntaxe ci-dessus, la première ligne montre la bibliothèque pour les appels système. Sur la deuxième ligne, fd représente un descripteur de fichier qui est en effet un nombre qui spécifie le fichier ouvert d'un processus. Le mot-clé *buf signifie buffer. Celui-ci contient toutes les données. Ensuite, compte. C'est le nombre d'octets à écrire dans un descripteur de fichier à partir du tampon.







Prérequis d'installation :

Pour exécuter n'importe quel code en langage C, vous devez d'abord installer certains packages dans la distribution Linux. Si vous voulez voir plus d'informations concernant l'appel système d'écriture, vous devez installer le paquet manpages-dev pour le faire. Pour ouvrir le terminal à l'aide de la touche de raccourci Ctrl+Alt+T. Après l'avoir ouvert, écrivez la commande d'installation apt ci-dessous suivie du mot-clé manpages-dev pour installer les pages de manuel.



$sudoapteinstallerpages de manuel-dev



L'installation des pages de manuel prendra un certain temps. Attendez qu'il soit terminé.





Après l'installation, vous pouvez voir les informations supplémentaires sur l'appel système d'écriture via la commande man ci-dessous dans le shell.



$homme 2 écrivez

La page de manuel de sortie pour la commande d'écriture est donnée ci-dessous. Vous pouvez lire les informations à ce sujet. Appuyez sur q pour quitter le manuel.

Il est maintenant temps d'installer le package Gcc sur votre système Linux pour qu'il fonctionne en langage C. Pour cela, ouvrez le shell et écrivez la commande d'installation apt ci-dessous suivie du mot-clé gcc.

$sudoapteinstaller gcc

Pendant ce temps, lors de l'installation, il peut vous demander de confirmer cette action d'installation en appuyant sur y pour continuer et n pour l'arrêter. Alors, appuyez sur la touche y et appuyez sur la touche Entrée.

Il sera installé sur votre système en quelques minutes et les dernières lignes de sortie seront comme indiqué dans l'instantané ci-dessous.

Exemples:

Prenons quelques exemples d'appel système d'écriture dans notre distribution Linux. Par conséquent, ouvrez le shell de ligne de commande et créez-y un nouveau fichier C avec l'extension point c. Vous devez utiliser la commande nano ci-dessous pour la créer et l'ouvrir rapidement. Nous lui avons donné le nom de new.c.

$nanonouveau.c

La fenêtre ci-dessous s'ouvrira. Vous devez maintenant écrire le code apposé dans ce fichier. Dans ce code, nous avons d'abord inclus une bibliothèque unistd.h. Ensuite, nous avons créé la fonction principale, et au sein de cette fonction, nous avons créé un appel système d'écriture. Dans cet appel système, le tout premier paramètre est le descripteur de fichier. Dans ce cas, l'entier 1 représente l'écran du périphérique de sortie, et il est fixe. Ainsi, notre sortie sera affichée à l'écran. Le deuxième paramètre affiche les données du tampon. Vous pouvez y ajouter n'importe quoi. Et le dernier paramètre affiche le nombre de comptage pour les données fournies dans le paramètre buffer. Comme nous l'avons mentionné 5 comme nombre de comptage, il n'affichera que les 5 premiers octets des données du tampon et ignorera les octets restants. Enregistrez ce code à l'aide de la touche de raccourci Ctrl+S et quittez ce fichier à l'aide de la commande Ctrl+X.

#comprendre

Int main()

{Écrivez(1Aqsa Yasin5);}

Maintenant dans le terminal, essayez la commande gcc ci-dessous pour compiler ce code nouvellement créé avec un nom de fichier.

$gccnouveau.c

Vérifions ce code en utilisant le fichier a.out par défaut créé au moment de l'exécution. Essayez donc la commande a.out ci-dessous pour vérifier la sortie de l'appel système d'écriture. Nous devons l'utiliser avec ./ pour sélectionner le fichier dans le répertoire courant.

$./a.out

La sortie que vous pouvez voir n'a affiché que le mot Aqsa à cause du nombre 5.

Modifions un peu notre code. Nous avons changé le nombre de comptage en 11 car nous avons un total de 11 octets dans nos données tampon Aqsa Yasin. Donc, cette fois, la sortie affichera les octets entiers des données de chaîne Aqsa Yasin. Enregistrez ce fichier en utilisant Ctrl+S et quittez en utilisant la touche de raccourci Ctrl+X.

Compilons le code mis à jour en utilisant le compilateur gcc nouvellement installé pour la distribution Linux. Essayez la même commande gcc avec le nom d'un fichier comme new.c.

$gccnouveau.c

Affichez maintenant la sortie du même code en utilisant la commande a.out précédente comme ci-dessous. La sortie affiche la chaîne complète Aqsa Yasin du tampon.

$./a.out

Voyons comment le code fonctionne lorsque nous prenons le nombre de comptage supérieur au nombre total d'octets que contiennent les données du tampon. Donc, nous avons utilisé le nombre comme 30. Enregistrez et fermez le fichier.

Compilez le même fichier mis à jour en utilisant la commande gcc comme ci-dessous.

$gccnouveau.c

Exécutez maintenant le fichier à l'aide de la commande a.out, et la sortie affichera les données du tampon ainsi qu'une valeur de mémoire avec celle-ci, comme indiqué dans la sortie de l'instantané ci-dessous.$ ./a.out

Vous pouvez également vérifier le nombre total d'octets écrits dans le fichier en utilisant le code ci-dessous dans le même fichier.

Compilez le code par instruction gcc.

$gccnouveau.c

La sortie affiche le nombre total d'octets, y compris les données du tampon et le saut de ligne, à l'aide de la commande a.out.

$./a.out

Conclusion:

Dans ce tutoriel, nous avons élaboré le concept d'utilisation de l'appel système Write en C. Essayez tous les exemples pour comprendre l'idée de l'appel système Write en utilisant cet article.