syncfs(category33-ubuntu.html) - phpMan

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

NAME
       sync, syncfs - commit buffer cache to disk
SYNOPSIS
       #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
       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 contain-
       ing file referred to by the open file descriptor fd.
RETURN VALUE
       syncfs() returns 0 on success; on error, it returns -1 and  sets  errno
       to indicate the error.
ERRORS
       sync() is always successful.
       syncfs() can fail for at least the following reason:
       EBADF  fd is not a valid file descriptor.
VERSIONS
       syncfs()  first  appeared in Linux 2.6.39; library support was added to
       glibc in version 2.14.
CONFORMING TO
       sync(): SVr4, 4.3BSD, POSIX.1-2001.
       syncfs() is Linux-specific.
NOTES
       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
       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
       bdflush(2), fdatasync(2), fsync(2), sync(8), update(8)
COLOPHON
       This  page  is  part of release 3.53 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)