C Programmation

Comment utiliser l'appel système ouvert en C

Comment utiliser l'appel système ouvert en C

Les appels système sont utilisés dans les distributions Linux pour fournir une porte au sein du système d'exploitation Linux et des programmes. Le système d'exploitation Linux utilise la bibliothèque Glibc pour prendre en charge les appels système tout en utilisant le langage C. Il existe également de nombreuses autres façons d'utiliser les appels système. Dans ce guide d'article, nous discuterons de l'appel système ouvert dans le système Linux. L'appel système « Open » a été utilisé pour ouvrir rapidement le fichier spécifié dans le chemin. Il nous permet de connaître le descripteur de fichier d'un fichier créé par l'utilisateur. Nous utilisons Ubuntu 20.04 pour obtenir un appel système « Open » pratique.

Installer des bibliothèques

Le langage C nécessite l'installation de certains packages de bibliothèque supplémentaires en tant que prérequis. Tout d'abord, vous devez installer le paquet manpages-dev pour vérifier les informations concernant les appels système. Ouvrez le terminal de ligne de commande à partir de la zone d'activité et exécutez l'instruction ci-dessous pour installer les pages de manuel.

$ sudo apt install manpages-dev

La sortie pour l'achèvement de l'installation a été donnée ci-dessous.

Maintenant, nous allons vérifier l'appel système ouvert en utilisant la commande "man" comme ci-dessous.

$ homme 2 ouvert

La page de manuel de sortie pour l'appel système « Open » a été affichée ci-dessous. Vous pouvez voir les informations supplémentaires à ce sujet. Appuyez sur le bouton « q » pour le quitter.

La syntaxe ci-dessus montre les trois premières lignes des bibliothèques nécessaires à ajouter pour les appels système. Il existe trois syntaxes disponibles pour l'appel système ouvert. La première syntaxe montre le "chemin", qui est le nom d'un fichier à ouvrir. Le deuxième paramètre, « drapeaux », indique le mode d'un fichier, e.g., lire ou écrire. La deuxième syntaxe peut être utilisée lorsque le fichier n'existe pas. Le mode paramètre est utilisé pour afficher les privilèges sur le fichier.

Il est maintenant temps d'installer le compilateur GCC pour le débogage du code C dans Ubuntu 20.04 Distribution Linux. Pour cela, exécutez l'instruction ci-dessous dans le shell pour le faire.

$ sudo apt installer gcc

Il vous faut appuyer sur "Y" pour continuer l'installation du compilateur GCC, sinon appuyez sur le bouton "n" pour fermer l'installation. Alors appuyez sur le bouton "y" et appuyez sur Entrée pour continuer.

La sortie pour l'achèvement est indiquée ci-dessous.

Exemple 01

Regardons l'exemple très simple d'un appel système « Open ». Tout d'abord, ouvrez le shell de commande et créez un nouveau fichier texte "test.txt" en utilisant la simple commande tactile comme suit :

$ test tactile.SMS

Ajoutez-y des données manuellement. Vous pouvez voir les données dans un fichier en utilisant la commande cat ci-dessous.

$ test de chat.SMS

Créons maintenant un nouveau fichier C à l'aide d'une commande nano dans le shell, comme indiqué ci-dessous.

$ nano nouveau.c

Le fichier GNU nano ci-dessous sera ouvert. Vous devez y taper le code du langage C ci-dessous. Vous pouvez voir que nous avons ajouté les packages de bibliothèque nécessaires pour que le code C soit exécuté correctement. Après cela, nous avons défini la fonction principale pour travailler sur un appel système ouvert. Nous avons déclaré deux variables entières. La variable "n" est utilisée pour compter les valeurs de tampon, et le "fd" est utilisé pour le descripteur de fichier. Nous avons déclaré le tableau de tampons de type caractère comme "buf" de taille 50. L'appel système open a été utilisé pour lire le contenu du fichier « test.txt" et renvoyez-le au descripteur de fichier. Le « O_RDONLY » a été utilisé à des fins de lecture. La ligne suivante montre l'appel système read pour collecter les 10 octets du tampon et le renvoyer dans l'entier n. En outre, la commande d'écriture a été utilisée pour écrire le contenu ou les données de la mémoire tampon dans le descripteur de fichier, qui est l'écran de sortie Dans notre cas en ce moment. Enregistrez ce fichier avec Ctrl+S et fermez-le avec la commande Ctrl+X.

#inclure
#inclure
#inclure
#inclure
int main()

int n, fd;
char buf[50];
fd=open(“tester.txt”, O_RDONLY);
n=lire(fd , buf, 10);
écrire(1 , buf, 10);

Compilons d'abord le code C pour un appel système ouvert à l'aide de la commande gcc ci-dessous.

$ gcc nouveau.c

Il est maintenant temps de vérifier la sortie du code C pour un appel système ouvert. Utilisons ci-dessous un.out dans le shell. La sortie affiche les 10 octets du contenu d'un fichier "test.SMS".

$ ./une.en dehors

Prenons un autre exemple pour écrire le contenu d'un fichier dans un autre fichier à l'aide d'un appel système Open. Pour créer un nouveau fichier C en utilisant la commande nano comme ci-dessous.

$ nano nouveau.c

Alors prenez le même code avec un changement mineur dedans. Nous avons défini un autre descripteur de fichier dans le code comme « fd1 ». Tout le code est le même sauf une ligne supplémentaire. L'avant-dernière ligne du code a utilisé l'appel système ouvert pour créer un nouveau fichier nommé "cible" en utilisant O_CREAT et le mode, en écriture seule sous la forme O_WRONLY. 0642 montre les privilèges attribués à ce fichier. Et le fichier a été renvoyé à un nouveau descripteur de fichier. La ligne suivante a montré une commande pour écrire les octets de contenu dans le tampon en fonction de son descripteur de fichier. Enregistrez le fichier et fermez-le.

Exécutez la commande de compilation gcc pour déboguer le fichier en langage C.

$ gcc nouveau.c

Pour afficher la sortie du code C, essayez le a.out instruction dans le shell comme ci-dessous. Il n'y a pas de sortie car la sortie a été redirigée vers le fichier "cible" nouvellement créé.

$ ./une.en dehors

Vérifions les données d'un fichier cible à l'aide de la commande cat. La sortie montre que le fichier contient 20 octets.

$ chat cible

Conclusion

Dans le tutoriel ci-dessus, nous vous avons expliqué comment utiliser un appel système ouvert en langage C en utilisant le compilateur gcc. A l'aide de différents exemples expliqués dans ce guide vous mènera à mettre en œuvre votre programme souhaité.

Tutoriel Shadow of the Tomb Raider pour Linux
Shadow of the Tomb Raider est le douzième ajout à la série Tomb Raider - une franchise de jeux d'action-aventure créée par Eidos Montréal. Le jeu a ét...
Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...