table of contents
sync(2) | System Calls Manual | sync(2) |
NOM¶
sync, syncfs - Vider les caches du système de fichiers sur le disque
BIBLIOTHÈQUE¶
Bibliothèque C standard (libc, -lc)
SYNOPSIS¶
#include <unistd.h>
void sync(void);
int syncfs(int fd);
sync() :
_XOPEN_SOURCE >= 500
|| /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 : */ _BSD_SOURCE
syncfs() :
_GNU_SOURCE
DESCRIPTION¶
sync() force l'écriture sur les systèmes de fichiers sous-jacents de toutes les métadonnées de fichier et données modifiées en cache.
syncfs() agit comme sync(), mais ne synchronise que le système de fichiers contenant le fichier référencé par le descripteur de fichier ouvert fd.
VALEUR RENVOYÉE¶
Si elle réussit, syncfs() renvoie 0. Si elle échoue, elle renvoie -1 et définit errno pour indiquer l'erreur.
ERREURS¶
sync() réussit toujours.
syncfs() peut échouer au moins dans les cas suivants :
- EBADF
- fd n'est pas un descripteur de fichier valable.
- EIO
- Une erreur s'est produite pendant la synchronisation. Cette erreur peut être liée à des données écrites dans n'importe quel fichier du système de fichiers ou à des métadonnées liées au système de fichiers lui-même.
- ENOSPC
- L'espace disque a été épuisé pendant la synchronisation.
- ENOSPC
- EDQUOT
- Les données ont été écrites dans un fichier sur un système de fichiers NFS ou autre qui n'allouait pas d'espace au moment de l'appel système à write(2) et certaines écritures antérieures ont échoué du fait d'un espace de stockage insuffisant.
VERSIONS¶
D'après les normes (par exemple POSIX.1-2001) sync() ne fait que planifier les écritures, il peut donc renvoyer avant que la véritable écriture ne soit effectuée. Cependant, Linux attend la fin de l'écriture et sync() et syncfs() fournissent donc les même garanties que fsync() sur chaque fichier du système ou du système de fichiers respectivement.
STANDARDS¶
HISTORIQUE¶
Depuis la glibc 2.2.2, le prototype sous Linux de sync() est celui indiqué plus haut, ce qui correspond à diverses normes. Dans glibc jusqu'à 2.2.1 c'était « int sync(void) », et sync() renvoyait toujours 0.
Dans les versions principales du noyau avant Linux 5.8, syncfs() n'échouera que si un mauvais descripteur de fichier est fourni (EBADF). Depuis Linux 5.8, syncfs() renverra aussi une erreur si un inœud ou plus a échoué à être réécrit depuis le dernier appel à syncfs().
BOGUES¶
Avant Linux 1.3.20, Linux n'attendait pas la fin de l'écriture.
VOIR AUSSI¶
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>, Thomas Vincent <tvincent@debian.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
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.
2 mai 2024 | Pages du manuel de Linux (non publiées) |