FSYNC(2)                  NetBSD System Calls Manual                  FSYNC(2)

NAME
     fsync, fsync_range -- synchronize a file's in-core state with that on
     disk

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <unistd.h>

     int
     fsync(int fd);

     int
     fsync_range(int fd, int how, off_t start, off_t length);

DESCRIPTION
     fsync() causes all modified data and attributes of fd to be moved to a
     permanent storage device.  This normally results in all in-core modified
     copies of buffers for the associated file to be written to a disk.

     fsync() should be used by programs that require a file to be in a known
     state, for example, in building a simple transaction facility.

     fsync_range() causes all modified data starting at start for length
     length of fd to be written to permanent storage.  Note that fsync_range()
     requires that the file fd must be open for writing.

     fsync_range() may flush the file data in one of two manners:

           FDATASYNC  Synchronize the file data and sufficient meta-data to
                      retrieve the data for the specified range.

           FFILESYNC  Synchronize all modified file data and meta-data for the
                      specified range.

     By default, fsync_range() does not flush disk caches, assuming that stor-
     age media are able to ensure completed writes are transfered to media.
     The FDISKSYNC flag may be included in the how parameter to trigger flush-
     ing of all disk caches for the file.

     If the length parameter is zero, fsync_range() will synchronize all of
     the file data.

RETURN VALUES
     A 0 value is returned on success.  A -1 value indicates an error.

ERRORS
     fsync() or fsync_range() fail if:

     [EBADF]            fd is not a valid descriptor.

     [EINVAL]           fd refers to a socket, not to a file.

     [EIO]              An I/O error occurred while reading from or writing to
                        the file system.

     Additionally, fsync_range() fails if:

     [EBADF]            fd is not open for writing.

     [EINVAL]           start + length is less than start.

NOTES
     For optimal efficiency, the fsync_range() call requires that the file
     system containing the file referenced by fd support partial synchroniza-
     tion of file data.  For file systems which do not support partial syn-
     chronization, the entire file will be synchronized and the call will be
     the equivalent of calling fsync().

SEE ALSO
     sync(2), sync(8)

HISTORY
     The fsync() function call appeared in 4.2BSD.

     The fsync_range() function call first appeared in NetBSD 2.0 and is mod-
     eled after the function available in AIX.

NetBSD 6.1.4                     May 17, 2010                     NetBSD 6.1.4

You can also request any man page by name and (optionally) by section:

Command: 
Section: 
Architecture: 
Collection: 
 

Use the DEFAULT collection to view manual pages for third-party software.


©1994 Man-cgi 1.15, Panagiotis Christias <christia@softlab.ntua.gr>
©1996-2014 Modified for NetBSD by Kimmo Suominen