Man page - fsync(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

fsync

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
VERSIONS
STANDARDS
HISTORIQUE
VOIR AUSSI
TRADUCTION

NOM

fsync, fdatasync - Synchroniser un fichier en mémoire avec le disque

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <unistd.h>

int fsync(int fd );

int fdatasync(int fd );

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

fsync () :
Glibc 2.16 et supérieures :
Aucune macro de fonction de test à définir
Glibc inférieure ou égale à 2.15 :
_BSD_SOURCE || _XOPEN_SOURCE
|| /* Depuis la glibc 2.8 : */ _POSIX_C_SOURCE >= 200112L

fdatasync () :
_POSIX_C_SOURCE >= 199506L || _XOPEN_SOURCE >= 500

DESCRIPTION

fsync () transfĂšre (« flush ») toutes les donnĂ©es modifiĂ©es (c’est-Ă -dire les pages modifiĂ©es du cache mĂ©moire) du fichier correspondant au descripteur fd sur le disque (ou autre pĂ©riphĂ©rique de stockage permanent) afin que toutes les informations modifiĂ©es puissent ĂȘtre rĂ©cupĂ©rĂ©es mĂȘme aprĂšs un plantage ou un redĂ©marrage du systĂšme. Cela nĂ©cessite d’écrire ou de purger le cache du disque, s’il en existe un. L’appel bloque jusqu’à ce que le pĂ©riphĂ©rique indique que le transfert est terminĂ©.

Outre les données du fichier, fsync () transfÚre aussi les méta-données associées au fichier (voir inode (7)).

Un appel Ă  fsync () n’assure pas obligatoirement que les informations concernant le rĂ©pertoire aient atteint le disque. Pour cela, un appel explicite de fsync () sur le descripteur de fichier du rĂ©pertoire est nĂ©cessaire.

fdatasync () est similaire à fsync (), mais ne transfÚre pas les méta-données, sauf si ces informations sont nécessaires à une récupération ultérieure de données. Par exemple, les modifications de st_atime ou st_mtime (respectivement, heure du dernier accÚs et de la derniÚre modification ; consultez inode (7)) ne sont pas transférées, car elles ne sont pas nécessaires à une lecture de données ultérieure. En revanche, une modification de la taille du fichier ( st_size ), par exemple effectuée par ftruncate (2), nécessite un transfert des méta-données.

Le but de fdatasync () est de rĂ©duire l’activitĂ© du disque pour les applications qui n’ont pas besoin d’une parfaite synchronisation des mĂ©ta-donnĂ©es avec le disque.

VALEUR RENVOYÉE

Ces appels systĂšme renvoient 0 en cas de succĂšs, ou -1 en cas d’échec, auquel cas errno est positionnĂ© pour indiquer l’erreur.

ERREURS

EBADF

Le descripteur de fichier fd est non valable.

EINTR

La fonction a été interrompue par un signal ; consultez signal (7).

EIO

Une erreur s’est produite pendant la synchronisation. Cette erreur peut provenir de l’écriture de donnĂ©es sur un autre descripteur de fichier dans le mĂȘme fichier. Depuis Linux 4.13, les erreurs survenues pendant l’écriture sont signalĂ©es Ă  tous les descripteurs de fichier qui pourraient avoir Ă©crit des donnĂ©es Ă  l’origine de l’erreur. Certains systĂšmes de fichiers (comme NFS) gardent le suivi du descripteur de fichier d’oĂč proviennent les donnĂ©es et donnent un retour plus prĂ©cis. D’autres systĂšmes de fichiers (comme la plupart des locaux) signaleront l’erreur Ă  tous les descripteurs de fichier ouverts sur le fichier quand l’erreur a Ă©tĂ© enregistrĂ©e.

ENOSPC

L’espace disque a Ă©tĂ© Ă©puisĂ© pendant la synchronisation.

EROFS

EINVAL

fd est associé à un type de fichier spécial (comme un tube, un FIFO ou un socket) qui ne prend pas en charge la synchronisation.

ENOSPC

EDQUOT

fd est associĂ© Ă  un fichier sur un systĂšme de fichiers NFS ou autre qui n’alloue pas d’espace au moment de l’appel systĂšme write (2) et des Ă©critures passĂ©es ont Ă©chouĂ© Ă  cause d’un espace de stockage insuffisant.

VERSIONS

Sur les systÚmes POSIX sur lesquels fdatasync () est disponible, la constante symbolique _POSIX_SYNCHRONIZED_IO est définie dans <unistd.h> comme étant une valeur supérieure à 0 . (Consultez aussi sysconf (3).)

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001, 4.2BSD.

Sous Linux 2.2 et prĂ©cĂ©dents, fdatasync () est Ă©quivalent Ă  fsync (), et n’apporte donc aucun avantage en performance.

Les implĂ©mentations de la fonction fsync () dans les vieux noyaux et les systĂšmes de fichiers les moins utilisĂ©s ne savent pas comment vider les caches du disque. Dans ces situations, les caches du disque ont besoin d’ĂȘtre dĂ©sactivĂ©s avec hdparm (8) ou sdparm (8) afin de garantir la sĂ»retĂ© des opĂ©rations.

Sous AT&T UNIX System V Release 4, fd a besoin d’ĂȘtre ouvert en Ă©criture. Cela est en soit incompatible avec l’interface d’origine de BSD et interdit par POSIX, mais nĂ©anmoins a survĂ©cu dans HP-UX et AIX.

VOIR AUSSI

sync (1), bdflush (2), open (2), posix_fadvise (2), pwritev (2), sync (2), sync_file_range (2), fflush (3), fileno (3), hdparm (8), mount (8)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .