Scroll to navigation

sync(2) System Calls Manual sync(2)

NOME

sync, syncfs - svuota la cache del filesystem sul disco

LIBRERIA

Libreria C standard (libc-lc)

SINTASSI

#include <unistd.h>
void sync(void);
int syncfs(int fd);

Macro per test di funzionalità per glibc (vedere feature_test_macros(7)):

sync():


_XOPEN_SOURCE >= 500
|| /* Sin da glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE

syncfs():


_GNU_SOURCE

DESCRIZIONE

sync() provoca la scrittura nei filesystem sottostanti di tutte le modifiche in sospeso ai metadati del file system e ai dati dei file memorizzati nella cache.

syncfs() è come sync(), ma sincronizza solo il filesystem contenente il file a cui si riferisce il descrittore di file aperto fd.

VALORE RESTITUITO

syncfs() ritorna 0 in caso di successo; in caso di errore, ritorna -1 e imposta errno in modo che indichi l'errore.

ERRORI

sync() termina sempre con successo.

syncfs() può fallire per almeno il motivo seguente:

fd non è un descrittore di file valido.
Si è verificato un errore durante la sincronizzazione. Quest'errore può riguardare i dati scritti su qualsiasi file sul filesystem, o su metadati relativi al filesystem stesso.
Lo spazio su disco è stato esaurito nel corso della sincronizzazione.
I dati sono stati scritti in un file su NFS o su un altro filesystem che non alloca spazio al momento di una chiamata di sistema a write(2), e alcune scritture precedenti non sono andate a buon fine per mancanza di spazio di archiviazione.

VERSIONI

According to the standard specification (i.e., POSIX.1), 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.

CONFORME A

POSIX.1-2024.
Linux.

STORIA

POSIX.1-2001, SVr4, 4.3BSD.
Linux 2.6.39, glibc 2.14.

A partire da glibc 2.2.2 il prototipo Linux per sync() è come elencato sopra, seguendo i vari standard. In libc4, libc5, e glibc 2.2.1 e precedenti era "int sync(void)", e sync() restituiva sempre 0.

Nelle versioni del kernel precedenti a Linux 5.8, syncfs() fallisce solo quando alla funzione viene passato un descrittore di file non valido (EBADF). A partire da Linux 5.8, syncfs() riporta un errore anche se non è stato possibile riscrivere uno o più inode dall'ultima chiamata a syncfs().

BUG

Prima di Linux 1.3.20, Linux non aspettava il completamento degli I/O prima di ritornare.

VEDERE ANCHE

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

TRADUZIONE

La traduzione italiana di questa pagina di manuale è stata creata da Goffredo Baroncelli <kreijack@usa.net>, Giulio Daprelà <giulio@pluto.it>, Elisabetta Galli <lab@kkk.it>, Marco Curreli <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>

Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.

Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.

29 ottobre 2025 Linux man-pages 6.16