man7.org > Linux > man-pages

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | CONFORMING TO | NOTES | BUGS | SEE ALSO | COLOPHONThe Linux Programming Interface


SYNC(2)                      Linux Programmer's Manual                     SYNC(2)

NAME         top

       sync, syncfs - commit buffer cache to disk

SYNOPSIS         top

       #include <unistd.h>

       void sync(void);

       int syncfs(int fd);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

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

       syncfs():
           _GNU_SOURCE

DESCRIPTION         top

       sync() causes all buffered modifications to file metadata and data to be
       written to the underlying file systems.

       syncfs() is like sync(), but synchronizes just the file system containing
       file referred to by the open file descriptor fd.

RETURN VALUE         top

       syncfs() returns 0 on success; on error, it returns -1 and sets errno to
       indicate the error.

ERRORS         top

       sync() is always successful.

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

       EBADF  fd is not a valid file descriptor.

VERSIONS         top

       syncfs() first appeared in Linux 2.6.39; library support was added to glibc
       in version 2.14.

CONFORMING TO         top

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

       syncfs() is Linux-specific.

NOTES         top

       Since glibc 2.2.2 the Linux prototype for sync() is as listed above,
       following the various standards.  In libc4, libc5, and glibc up to 2.2.1 it
       was "int sync(void)", and sync() always returned 0.

BUGS         top

       According to the standard specification (e.g., POSIX.1-2001), sync()
       schedules the writes, but may return before the actual writing is done.
       However, since version 1.3.20 Linux does actually wait.  (This still does
       not guarantee data integrity: modern disks have large caches.)

SEE ALSO         top

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

COLOPHON         top

       This page is part of release 3.41 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can be
       found at http://www.kernel.org/doc/man-pages/.

Linux                               2012-05-04                             SYNC(2)

HTML rendering created 2012-05-11 by Michael Kerrisk, author of The Linux Programming Interface, maintainer of the Linux man-pages project

free hit counters