SYNC(2) Manuel du programmeur Linux SYNC(2)

sync, syncfs - Vider les caches du système de fichiers sur le disque

#include <unistd.h>

void sync(void);

int syncfs(int fd);

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

sync() :

_XOPEN_SOURCE >= 500 || /* Depuis glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc versions <= 2.19: */ _BSD_SOURCE

syncfs() :

_GNU_SOURCE

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.

Si elle réussit, syncfs() renvoie 0. Si elle échoue, elle renvoie -1 et définit errno pour indiquer l'erreur.

sync() réussit toujours.

syncfs() can fail for at least the following reasons:

EBADF
fd n'est pas un descripteur de fichier valable.
EIO
An error occurred during synchronization. This error may relate to data written to any file on the filesystem, or on metadata related to the filesystem itself.
ENOSPC
Disk space was exhausted while synchronizing.
ENOSPC, EDQUOT
Data was written to a files on NFS or another filesystem which does not allocate space at the time of a write(2) system call, and some previous write failed due to insufficient storage space.

syncfs() est apparue dans Linux 2.6.39, la glibc la gère depuis la version 2.14.

sync(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

syncfs() est spécifique à Linux.

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.

According to the standard specification (e.g., POSIX.1-2001), sync() schedules the writes, but may return before the actual writing is done. However Linux waits for I/O completions, and thus sync() or syncfs() provide the same guarantees as fsync() called on every file in the system or filesystem respectively.

In mainline kernel versions prior to 5.8, syncfs() will fail only when passed a bad file descriptor (EBADF). Since Linux 5.8, syncfs() will also report an error if one or more inodes failed to be written back since the last syncfs() call.

Avant la version 1.3.20, Linux n'attendait pas la fin de l'écriture.

sync(1), fdatasync(2), fsync(2)

Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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> et David Prévot <david@tilapin.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.

13 août 2020 Linux