Comment utiliser l'appel du système Readv en C

Comment utiliser l'appel du système Readv en C
Les segments de comptage de lecture du système Readv () Système comme le document partagé par le descripteur du document FD accroché aux plusieurs tampons du vecteur. Les E / S vectores sont un processus dans lequel un appel système solitaire écrit vers un vecteur de tampons à partir d'un flux singulier de données ou lit un vecteur de tampons à partir d'un seul flux de données. La méthode de l'appel du système readv () est similaire à la lecture (2); En dehors de cela, il remplit plusieurs tampons. L'appel du système readv () revient le total des octets lus lorsqu'il réussit; -1 est resté en cas d'erreur. Cet article couvrira le sujet de l'appel du système readv () dans l'Ubuntu 20.04 Système Linux. Assurez-vous d'avoir les privilèges sudo pour éviter tout inconvénient.

Au début, connectez-vous à partir de votre système d'exploitation Linux et ouvrez le terminal de la console de ligne de commande. Il y a deux façons de l'ouvrir. Le premier utilise une clé de raccourci «Ctrl + Alt + T» pendant que vous êtes au bureau du système Linux, et l'autre utilise la zone d'activité. Cliquez sur la barre de menu d'activité mise en évidence dans le coin supérieur gauche de l'écran de bureau. La barre de recherche apparaîtra. Appuyez dessus et écrivez «Terminal» dedans. Appuyez sur la clé «Entrez» pour continuer. La coquille de borne sera ouverte alors. Après l'ouverture du terminal de la console, il est d'abord du temps de créer un fichier ayant une extension de type «txt» pour une utilisation simple. Nous pouvons utiliser l'instruction «Touch» et le nom d'un fichier, e.g., test.txt, pour le créer. Appuyez sur le bouton «Entrer» et un fichier sera créé.

$ TOCK TEST.SMS

Dans le répertoire domestique de votre système Linux, vous pouvez trouver le fichier récemment formé «Test.SMS". Double-tape dessus pour l'ouvrir et taper les données ci-dessous. Enregistrez-le en appuyant sur «Ctrl + S» ou en cliquant simplement sur le bouton de «Enregistrer». Fermez-le après la mise à jour à l'aide d'un signe croisé sur le côté droit du fichier.

Revenant au terminal, vous pouvez également vérifier les données de ce fichier à l'aide d'une commande «chat» très simple en dessous. La sortie affiche le contenu du fichier «Test.SMS".

$ test de chat.SMS

Maintenant, pour commencer à travailler sur la langue C, votre système Linux doit y avoir un compilateur de langue C. Pour cela, vous devez d'abord installer un compilateur. Nous suggérons d'installer le compilateur «gcc» en utilisant la commande sudo «apt» comme ci-dessous.

$ sudo apt install gcc

Après la configuration d'un compilateur, vous pouvez désormais travailler correctement sur la langue C. Tout d'abord, nous devons créer un nouveau fichier avec une extension de type «C» à sa fin en utilisant l'éditeur Nano. Par conséquent, essayez la requête ci-dessous dans la console pour le faire.

$ test nano.c

Explication du code

Une fois l'ouverture de l'éditeur Nano, rédigez le code ci-dessous de la langue C pour utiliser l'appel du système Readv dans notre système Linux. Tout d'abord, nous avons utilisé les bibliothèques ci-dessous dans le code C pour fonctionner correctement et sans aucune erreur. Ensuite, nous avons déclaré la fonction principale comme indiqué dans le snap. Au tout début de la fonction principale, nous devons définir deux variables, «I» et «FD». Après cela, des tableaux de type trois caractères ou moins ont été spécifiés nommés «F1», «F2» et «F3». Après cela, nous avons déclaré une liste ou un tableau de type de structure nommé «Iovec». Chaque structure Iovec définit un fragment, qui serait un tampon disjoint individuel. Ensuite, nous avons créé une autre variable de la taille de type nommée «NR». Après toutes les déclarations, nous avons spécifié un simple appel système «ouvert» pour ouvrir le fichier «Test.txt »de son directeur et lire tous ses contenus, et revenir au descripteur de fichier« FD ». Le drapeau o_rdonly a été utilisé à des fins de lecture. Sur la ligne suivante, nous avons déclaré une instruction «IF» pour vérifier si le descripteur de fichier est égalé à «-a» ou non. S'il s'agit de «-1», il via un message d'erreur «ouvert» dans le shell et retournera 1. En dehors de l'instruction «IF», ​​nous avons utilisé les descripteurs de fichiers pour attribuer des valeurs aux index de structure. Le «iov.base ”est un pointeur montrant le début d'un tampon, et le« iov.Len ”montre la taille totale du tampon en octets. Un vecteur semble être une collection de sections. Chaque section du vecteur spécifie l'emplacement et la taille d'un cache tampon sur lequel ou à ce que les données peuvent être inscrites ou lire. Au préalable, passant au tampon ultérieur, la méthode readv () couvre pleinement chacun des tampons d'octets «iov_len». Avant de passer à un autre cache de tampon, la méthode writev () inscrit toujours l'intégralité des octets «iov_len». En commençant par IOV [0], anciennement IOV [1], et ainsi de suite, via IOV [COUNT-1], les deux opérations agissent toujours sur les sections afin. Après cela, nous avons déclaré un appel du système «readv» pour lire le descripteur de fichier et les octets «IOV» tamponnent jusqu'à la taille de 3.

Ensuite, nous avons vérifié les octets retournés. Si la valeur de retour est «-1», elle affichera un message d'erreur «readv». Nous avons utilisé la boucle «pour» pour imprimer les caractères de fichier via «IOV». Si la fonction a été fermée, elle affichera «Close». Enregistrez ce code à l'aide de «Ctrl + S» et quittez le fichier à l'aide de la méthode de raccourci «Ctrl + X».

Compilez maintenant le code à l'aide de la commande gcc comme indiqué ci-dessous.

$ test gcc.c

Après cela, exécutez la commande d'exécution pour vérifier les résultats. La sortie ci-dessous affiche le contenu en morceaux et affiche également les messages d'erreur. Il affiche également le numéro d'index pour le tableau de tampon comme 0, 1 et 2.

$ ./un.dehors

Conclusion

Nous avons terminé toutes les parties essentielles pour compléter l'appel du système «readv» dans l'Ubuntu 20.04 Système Linux. Toutes les commandes fonctionneront de la même manière pour les autres distributions Linux.