1. NOM

sync, syncfs - Vider le tampon cache sur le disque

2. SYNOPSIS

#include <unistd.h>

void sync(void);

int syncfs(int fd);

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

sync() :
    _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

syncfs() :
    _GNU_SOURCE

3. 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 mémoire tampon. 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.

4. VALEUR RENVOYÉE

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

5. ERREURS

sync() réussit toujours. syncfs() peut échouer au moins dans le cas suivant :

  • EBADF
        fd n'est pas un descripteur de fichier valable.

6. VERSIONS

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

7. CONFORMITÉ

sync() : SVr4, 4.3BSD, POSIX.1-2001. syncfs() est spécifique à Linux.

8. NOTES

Depuis la glibc 2.2.2 le prototype sous Linux de sync() est celui indiqué plus haut, ce qui correspond à divers normes. Dans les libc4, libc5, et glibc jusqu'à 2.2.1 c'était « int sync(void) », et sync() renvoyait toujours 0.

9. BOGUES

D'après les normes (par exemple POSIX.1-2001) sync() ne fait que planifier les écritures, il peut donc revenir avant que la véritable synchronisation ne soit effectuée. Depuis la version 1.3.20, Linux attend effectivement la fin de l'écriture (néanmoins cela ne garantit toujours pas l'intégrité des données, les disques modernes ont des tampons cache très grands).

10. VOIR AUSSI

bdflush(2), fdatasync(2), fsync(2), sync(8), update(8)

11. COLOPHON

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

12. TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à < >.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».