C Programmation

Comment utiliser l'appel système Fsync en C

Comment utiliser l'appel système Fsync en C

Le fsync est utilisé pour coordonner l'état in-core d'un fichier avec n'importe quel périphérique de stockage. L'appel système fsync() transmet (« flushes ») tout le contenu in-core modifié de (i.e., tampon modifié pour) le descripteur de fichier fd sur une machine à disque (ou tout autre périphérique de stockage perpétuel) où un tel fichier reste. Il nettoie même les détails du fichier. L'appel système fsync fonctionne sur un seul fichier. Toutes les mises à jour du fichier seront supprimées. Si plusieurs tâches sont éditées dans le même fichier, l'appel système fsync sera suspendu avant que toutes les mises à jour aient été transférées sur le disque. Si le système annonce que la conversion est réussie, l'appel sera bloqué. L'utilisation de fsync() ne garantit pas que l'inclusion du fichier dans le système de fichiers est peut-être également entrée sur le disque. Un fsync() approprié sur le descripteur de fichier du dossier est cependant requis pour cela.

Prérequis d'installation :

Ainsi, l'appel système fsync nécessite l'installation de certaines bibliothèques pour fonctionner dessus. Si quelqu'un veut vérifier les informations supplémentaires concernant la commande fsync, il doit avoir les packages manpages-dev installés sur son système Linux. donc on va voir comment faire. Utilisez la touche Ctrl+Alt+T du clavier pour lancer le terminal de ligne de commande Linux. Maintenant, pour installer le package manpages-dev, essayez la commande d'installation apt ci-dessous, suivie d'un package nommé "manpages-dev". Le processus d'installation nécessitera le mot de passe de votre compte pour que Linux se poursuive. Alors, entrez le mot de passe Linux de votre compte actuel et appuyez sur la touche Entrée du clavier. Il démarrera rapidement l'installation et la configuration des pages de manuel dans votre système Linux. Asseyez-vous jusqu'à ce qu'il termine le processus d'installation.

$ sudo apt install manpages-dev

Après l'installation, vous pouvez utiliser la commande ci-dessous pour vérifier les informations sur le système fsync.

$ man 2 fsync

La sortie de la commande man est annexée ci-dessous. Vous pouvez lire toutes les informations le concernant pour comprendre le concept de l'appel système "fsync" dans le système Linux. Appuyez sur le bouton « q » du clavier pour quitter cette fenêtre.

Un autre prérequis requis pour utiliser l'identifiant d'appel système fsync est le compilateur GCC. C'est parce que nous utilisons l'appel système fsync dans le langage C. Donc, pour exécuter et compiler du code en langage C, nous devons avoir un package de compilateur installé dans notre système. Donc, nous avons ici un compilateur GCC. Vous pouvez l'installer en utilisant la commande sudo apt très simple comme ci-dessous. Il terminera son installation en quelques minutes, et vous pourrez facilement écrire des codes C dans des fichiers.

$ sudo apt installer gcc

Exemple:

Commençons à travailler sur la commande fsync pour bien la comprendre. Tout d'abord, vous devez créer un fichier de type C à l'aide de l'éditeur nano dans le shell de ligne de commande. Pour cela, essayez d'exécuter la requête simple ci-dessous dans le shell.

$ nano nouveau.c

Une fois le fichier créé et ouvert, il est temps d'écrire du code C. Vous pouvez donc voir le code long ci-dessous dans le fichier nano. Les 7 premières lignes ont des fichiers d'en-tête qui doivent être inclus dans le fichier de l'éditeur pour le bon fonctionnement de l'appel système "fsync". Après ces fichiers d'en-tête, nous avons défini la fonction principale avec le type de retour entier comme "int". Cette fonction contient deux paramètres. L'un d'eux est un type entier, et l'autre est un tableau de type caractère. Dans l'espace de la fonction principale, nous avons déclaré une chaîne de type caractère "*str" et défini une valeur de type chaîne pour elle. Après cela, nous avons également déclaré deux variables de type entier qui seront utilisées comme descripteurs de fichiers dans les lignes suivantes. Dans la ligne suivante, nous avons utilisé la fonction d'appel système de création pour créer un nouveau fichier nommé "test.txt" et les privilèges de lecture et d'écriture en tant que décalage dans le paramètre. Nous avons renvoyé le contenu de ce fichier à un descripteur de fichier « fd ». Nous avons défini l'instruction if dans ce code C. Si la valeur ou le pointeur d'index du descripteur de fichier est "-1", l'erreur d'appel de la fonction creat () pour créer un nouveau fichier sera lancée. Le descripteur "fd" inférieur à "-1" signifie que le pointeur est à une position -1.

La fonction exit() sera appelée avant la fermeture de l'instruction if. Ensuite, nous avons utilisé l'appel de méthode d'écriture pour collecter la valeur de chaîne dans le tampon et l'écrire dans le fichier "test.txt" en utilisant le descripteur de fichier "fd". Ces données ont été renvoyées à la variable « ret ». Si la valeur de la variable « Ret » est inférieure à -1, cela signifie que les données n'ont pas été écrites dans un fichier. Donc, vous devez à nouveau appeler la fonction d'écriture et quitter l'instruction if. Nous avons défini l'appel système fsync et lui avons donné un descripteur de fichier « fd » comme valeur de paramètre pour synchroniser le descripteur de fichier avec un périphérique de disque. Lors de l'appel de la méthode "close", il écrira rapidement les données dans un lecteur de disque et fermera le descripteur de fichier. Après cela, la fonction principale sera fermée. Enregistrez ce fichier à l'aide d'une touche de raccourci clavier « Ctrl+S » et fermez le fichier « nouveau.c" à l'aide de la touche de raccourci "Ctrl+X".

Après avoir fermé le fichier nano, il est maintenant temps pour vous de compiler le code présenté ci-dessus. Pour la compilation du code, nous devons utiliser le compilateur gcc. Alors, exécutez la requête gcc ci-dessous pour compiler le "nouveau.fichier "c".

$ gcc nouveau.c

Maintenant, nous devons exécuter ce code en utilisant le simple a.out dans le shell comme ci-dessous. Cette commande exécutera simplement le code et ne retournera rien, mais les données ont été écrites sur un lecteur de disque à l'arrière du processus.

$ ./une.en dehors

Vérifiez le fichier qui a été créé dans le code C, et il contient une valeur de chaîne.

$ test de chat.SMS

Conclusion

Nous avons brièvement discuté d'un exemple très simple et linéaire de l'appel système fsync pour comprendre son concept.J'espère que maintenant vous pouvez facilement utiliser l'appel système fsync sous Linux.

5 meilleurs jeux d'arcade pour Linux
De nos jours, les ordinateurs sont des machines sérieuses utilisées pour les jeux. Si vous ne pouvez pas obtenir le nouveau score élevé, vous saurez c...
Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...
Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...