]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man2/fsync.2
locale.1, localedef.1, _exit.2, accept.2, access.2, acct.2, adjtimex.2, bdflush.2...
[thirdparty/man-pages.git] / man2 / fsync.2
index 9b747741a19de41b2128dda9a1161794feef5b69..76dcf96b1a18e3f50dee058c3fce055f7c81a69c 100644 (file)
@@ -1,8 +1,7 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) and
 .\" and Copyright 2006 Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
@@ -22,6 +21,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Modified 21 Aug 1994 by Michael Chastain <mec@shell.portal.com>:
 .\"   Removed note about old libc (pre-4.5.26) translating to 'sync'.
@@ -33,8 +33,9 @@
 .\" Modified 18 Apr 2001 by Andi Kleen
 .\"   Fix description to describe what it really does; add a few caveats.
 .\" 2006-04-28, mtk, substantial rewrite of various parts.
+.\" 2012-02-27 Various changes by Christoph Hellwig <hch@lst.de>
 .\"
-.TH FSYNC 2 2008-11-07 "Linux" "Linux Programmer's Manual"
+.TH FSYNC 2 2016-03-15 "Linux" "Linux Programmer's Manual"
 .SH NAME
 fsync, fdatasync \- synchronize a file's in-core state with storage device
 .SH SYNOPSIS
@@ -50,13 +51,14 @@ Feature Test Macro Requirements for glibc (see
 .in
 .sp
 .BR fsync ():
-_BSD_SOURCE || _XOPEN_SOURCE
-.br
-         || /* since glibc 2.8: */ _POSIX_C_SOURCE\ >=\ 200112L
-.\" _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8
+    Glibc 2.16 and later:
+        No feature test macros need be defined
+    Glibc up to and including 2.15:
+        _BSD_SOURCE || _XOPEN_SOURCE
+            || /* since glibc 2.8: */ _POSIX_C_SOURCE\ >=\ 200112L
 .br
 .BR fdatasync ():
-_POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500
+    _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500
 .SH DESCRIPTION
 .BR fsync ()
 transfers ("flushes") all modified in-core data of
@@ -65,13 +67,12 @@ file referred to by the file descriptor
 .I fd
 to the disk device (or other permanent storage device) so that all
 changed information can be retrieved even after the system crashed or
-was rebooted.  This includes writing through or flushing a disk cache
-if present.
+was rebooted.
+This includes writing through or flushing a disk cache if present.
 The call blocks until the device reports that the transfer has completed.
 It also flushes metadata information associated with the file (see
 .BR stat (2)).
 
-
 Calling
 .BR fsync ()
 does not necessarily ensure
@@ -105,7 +106,7 @@ The aim of
 .BR fdatasync ()
 is to reduce disk activity for applications that do not
 require all metadata to be synchronized with the disk.
-.SH "RETURN VALUE"
+.SH RETURN VALUE
 On success, these system calls return zero.
 On error, \-1 is returned, and
 .I errno
@@ -122,8 +123,8 @@ An error occurred during synchronization.
 .BR EROFS ", " EINVAL
 .I fd
 is bound to a special file which does not support synchronization.
-.SH "CONFORMING TO"
-4.3BSD, POSIX.1-2001.
+.SH CONFORMING TO
+POSIX.1-2001, POSIX.1-2008, 4.3BSD.
 .SH AVAILABILITY
 On POSIX systems on which
 .BR fdatasync ()
@@ -138,6 +139,12 @@ to a value greater than 0.
 .\" -1: unavailable, 0: ask using sysconf().
 .\" glibc defines them to 1.
 .SH NOTES
+On some UNIX systems (but not Linux),
+.I fd
+must be a
+.I writable
+file descriptor.
+
 In Linux 2.2 and earlier,
 .BR fdatasync ()
 is equivalent to
@@ -147,18 +154,17 @@ and so has no performance advantage.
 The
 .BR fsync ()
 implementations in older kernels and lesser used filesystems
-does not know how to flush disk caches.  In these cases disk caches need to
-be disabled using
+does not know how to flush disk caches.
+In these cases disk caches need to be disabled using
 .BR hdparm (8)
 or
 .BR sdparm (8)
 to guarantee safe operation.
-.SH "SEE ALSO"
+.SH SEE ALSO
 .BR bdflush (2),
 .BR open (2),
 .BR sync (2),
 .BR sync_file_range (2),
 .BR hdparm (8),
 .BR mount (8),
-.BR sync (8),
-.BR update (8)
+.BR sync (1)