Sous-routine fsync ou fsync_range
Objectif
Ecrit les modifications dans un fichier en mémoire permanente.
Bibliothèque
Bibliothèque C standard (libc.a)
Syntaxe
#include <unistd.h>
int fsync ( FileDescriptor)
int FileDescriptor;
int fsync_range (FileDescriptor, how, start, length)
int FileDescriptor;
int how;
off_t start;
off_t length;
Descriptif
La sous-routine fsync entraîne la sauvegarde de toutes les données modifiées dans le fichier ouvert spécifié par le paramètre FileDescriptor dans la mémoire permanente. En retour de la sous-routine Fsync , toutes les mises à jour ont été sauvegardées sur le stockage permanent.
La sous-routine fsync_range entraîne la sauvegarde dans la mémoire permanente de toutes les données modifiées dans la plage spécifiée du fichier ouvert spécifiée par le paramètre FileDescriptor . En retour de la sous-routine Plage fsync_range , toutes les mises à jour de la plage spécifiée ont été sauvegardées sur le stockage permanent.
Ce paragraphe fait référence à la fonction obsolète disponible uniquement dans le système de fichiers JFS. Les données écrites dans un fichier qu'un processus a ouvert pour mise à jour différée (avec l'indicateur O_REPORT ) ne sont pas écrites dans un stockage permanent tant qu'un autre processus n'émet pas d'appel Plage fsync_range ou Fsync sur ce fichier ou qu'il exécute une sous-routine écrire synchrone (avec l'indicateur _SYNC ) sur ce fichier. Voir le fichier fcntl.h et la sous-routine open pour la description des indicateurs O_DEFER et O_SYNC respectivement.
Paramètres
| Article | Descriptif |
|---|---|
| FileDescriptor | Un descripteur de fichier ouvert valide. |
| comment faire | Indiquez les caractéristiques de gestion de l'opération.
|
| DÉBUT | Décalage du fichier de départ. |
| Length | Longueur ou zéro pour toutes les données de cache. |
Valeurs renvoyées
Une fois l'exécution terminée, la sous-routine Fsync renvoie une valeur de 0. Dans le cas contraire, la valeur -1 est renvoyée et la variable globale errno est définie pour indiquer l'erreur.
Une fois l'exécution terminée, la sous-routine Plage fsync_range renvoie une valeur de 0. Dans le cas contraire, la valeur -1 est renvoyée et la variable globale errno est définie pour indiquer l'erreur.
Codes d'erreur
La sous-routine Fsync ou Plage fsync_range échoue si une ou plusieurs des opérations suivantes sont vraies:
| Article | Descriptif |
|---|---|
| EIO | Une erreur d'E-S s'est produite lors de la lecture ou de l'écriture dans le système de fichiers. |
| EBADF | Le paramètre FileDescriptor n'est pas un descripteur de fichier valide ouvert en écriture. |
| EINVAL | Le fichier n'est pas un fichier standard. |
| EINTR | Le sous-programme a été interrompu par un signal. |