Lire l'appel du système dans c

Lire l'appel du système dans c

Un appel système est une méthode pour les logiciels pour communiquer avec le système d'exploitation. Lorsque le logiciel effectue un appel système, il envoie la demande au noyau du système d'exploitation. Pour lire par un descripteur de fichiers, vous pouvez utiliser la fonction Système Read (). Chaque processus a son tableau des descripteurs de fichiers personnels dans le système d'exploitation. La seule différence entre read () et écriture () est que read () lit les données du fichier mentionné par le descripteur de fichier. Le temps de lecture du fichier est mis à jour après une lecture réussie ().

Syntaxe

# ssize_t read (int fd, const void * buf, size_t count);

Le descripteur de fichier est le premier argument. Le tampon est le deuxième argument. Enfin, la troisième option spécifie le nombre d'octets que vous envisagez de lire. Les octets sont juste le volume de données à copier, et le tampon est l'adresse de l'espace mémoire où les données doivent être écrites. Le résultat de retour représente la quantité de données écrites en octets; Si cela varie des octets, quelque chose semble mal. Si la valeur est négative, l'appel système abandonnera.

Conditions préalables

Le compilateur GCC est nécessaire pour compiler le code qui contient un appel système read (). Pour exécuter et assembler le code de langue C, nous devrons installer un package de compilateur sur notre machine. Donc, nous devons également installer le compilateur GCC. Vous pouvez l'installer avec la commande ci-dessous présentée dans un terminal Linux, comme indiqué ci-dessous. Il s'installera en quelques instants, et vous pourrez simplement écrire et exécuter les codes C dans des fichiers.

En appuyant sur la touche Entrée, le compilateur GCC sera installé. Il faudra quelques instants avant de vous demander de dire oui ou non. Si vous choisissez oui, il commencera à sélectionner la sortie du compilateur GCC. Utilisez les instructions ci-dessous pour installer GCC sur votre système.

$ sudo apt install gcc

Premier exemple d'appel du système read () dans c

Commençons par lire () pour mieux comprendre. Tout d'abord, vous devez utiliser l'éditeur GNU de Shell pour générer un fichier de type C. Essayez d'exécuter la question simple ci-dessous dans le terminal pour cela.

$ nano read1.c

Il faudra un peu de temps pour que la commande mentionnée ci-dessus s'ouvre, mais une fois que vous le ferez, vous pourrez l'utiliser immédiatement. Il lance votre Ubuntu 20.Éditeur GNU du 04 tout de suite. L'éditeur GNU apparaîtra comme indiqué dans l'image attachée ci-dessous. Maintenant, écrivez le code affiché dans l'éditeur.

L'appel Système Read () reçoit l'entrée de l'utilisateur du clavier qui est le descripteur de fichier comme 0 et le place dans le tampon «buff», qui n'est qu'un tableau de caractères. Il ne peut lire que jusqu'à 10 octets à la fois. Seules les 10 premières lettres seront lues, quel que soit le montant de l'utilisateur. Enfin, en utilisant l'appel système écrite (), les données s'affichent sur la fenêtre.

Sur l'écran, il imprime les mêmes 10 octets que dans le tampon du descripteur de fichier 1. Vous devez maintenant compiler le code indiqué ci-dessus. Nous devons utiliser le compilateur GCC pour la compilation de code. Pour compiler le «Read1.Fichier C ”, exécutez la commande gcc ci-dessous. Revenez à la console et écrivez la commande:

$ gcc read1.c

Maintenant, nous devons exécuter ce code en utilisant le./un.commande de sortie dans le terminal vu ci-dessous.

$ ./un.dehors

Selon le programme, la sortie est affichée dans la capture d'écran ci-dessus.

Deuxième exemple d'appel du système read () dans c

Vous ne pouvez pas prédire dans quelle mesure l'utilisateur entrerait en entrée. En conséquence, le troisième argument du système écrite () ne peut pas être utilisé pour fournir les bons octets. Le résultat peut différer de ce que vous attendiez. Gardez à l'esprit ce que Read () revient s'il réussit. Pour démontrer ce concept, nous exécutons cet exemple. Utilisez maintenant à nouveau l'éditeur GNU de Shell pour générer un fichier de type C. Essayez d'exécuter la question simple ci-dessous dans le terminal pour cela.

$ Nano Read.c

Il faudra un peu de temps pour que la commande mentionnée ci-dessus s'ouvre, mais une fois que vous le ferez, vous pourrez l'utiliser immédiatement. Il lance votre Ubuntu 20.Éditeur GNU du 04 tout de suite. L'éditeur GNU apparaîtra comme indiqué dans l'image attachée ci-dessous. Maintenant, écrivez le code affiché dans l'éditeur.

Dans ce code, nous utilisons la variable Nread pour maintenir le nombre d'octets qui sont lus par l'appel système Read () en C, et utilisons la variable dans write () pour afficher la même quantité d'octets sur la fenêtre. Vous devez maintenant compiler le code indiqué ci-dessus.

Nous devons utiliser le compilateur GCC pour la compilation de code. Pour compiler le «Lire.Fichier C ”, exécutez la commande gcc ci-dessous. Retour à la console et tapez la commande:

$ gcc lecture.c

Une fois le code compilé, exécutez ce code à l'aide du ./un.Out commande dans le terminal, comme on le voit ci-dessous.

$ ./un.dehors

Selon le programme, la sortie est affichée dans la capture d'écran ci-dessus.

Conclusion

Pour comprendre le concept de l'appel du système read () dans Ubuntu, nous avons exploré quelques exemples simples et linéaires en C. Nous avons également couvert comment configurer le compilateur GCC pour la compilation de code. J'espère que vous pouvez maintenant simplement utiliser l'appel Système Read () pour créer votre code sur Ubuntu 20.04.