diff options
Diffstat (limited to 'man2/fsync.2')
-rw-r--r-- | man2/fsync.2 | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/man2/fsync.2 b/man2/fsync.2 index 623e7ca..8566ef7 100644 --- a/man2/fsync.2 +++ b/man2/fsync.2 @@ -15,7 +15,7 @@ .\" 2006-04-28, mtk, substantial rewrite of various parts. .\" 2012-02-27 Various changes by Christoph Hellwig <hch@lst.de> .\" -.TH fsync 2 2023-03-30 "Linux man-pages 6.05.01" +.TH fsync 2 2023-10-31 "Linux man-pages 6.7" .SH NAME fsync, fdatasync \- synchronize a file's in-core state with storage device .SH LIBRARY @@ -24,17 +24,17 @@ Standard C library .SH SYNOPSIS .nf .B #include <unistd.h> -.PP +.P .BI "int fsync(int " fd ); -.PP +.P .BI "int fdatasync(int " fd ); .fi -.PP +.P .RS -4 Feature Test Macro Requirements for glibc (see .BR feature_test_macros (7)): .RE -.PP +.P .nf .BR fsync (): glibc 2.16 and later: @@ -43,7 +43,7 @@ Feature Test Macro Requirements for glibc (see _BSD_SOURCE || _XOPEN_SOURCE || /* Since glibc 2.8: */ _POSIX_C_SOURCE >= 200112L .fi -.PP +.P .BR fdatasync (): .nf _POSIX_C_SOURCE >= 199309L || _XOPEN_SOURCE >= 500 @@ -59,12 +59,12 @@ changed information can be retrieved even if the system crashes or is rebooted. This includes writing through or flushing a disk cache if present. The call blocks until the device reports that the transfer has completed. -.PP +.P As well as flushing the file data, .BR fsync () also flushes the metadata information associated with the file (see .BR inode (7)). -.PP +.P Calling .BR fsync () does not necessarily ensure @@ -72,7 +72,7 @@ that the entry in the directory containing the file has also reached disk. For that an explicit .BR fsync () on a file descriptor for the directory is also needed. -.PP +.P .BR fdatasync () is similar to .BR fsync (), @@ -93,7 +93,7 @@ On the other hand, a change to the file size as made by say .BR ftruncate (2)), would require a metadata flush. -.PP +.P The aim of .BR fdatasync () is to reduce disk activity for applications that do not @@ -130,12 +130,16 @@ all file descriptors that were open on the file when the error was recorded. .B ENOSPC Disk space was exhausted while synchronizing. .TP -.BR EROFS ", " EINVAL +.B EROFS +.TQ +.B EINVAL .I fd is bound to a special file (e.g., a pipe, FIFO, or socket) which does not support synchronization. .TP -.BR ENOSPC ", " EDQUOT +.B ENOSPC +.TQ +.B EDQUOT .I fd is bound to a file on NFS or another filesystem which does not allocate space at the time of a @@ -155,23 +159,17 @@ to a value greater than 0. .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L. .\" -1: unavailable, 0: ask using sysconf(). .\" glibc defines them to 1. -.PP -On some UNIX systems (but not Linux), -.I fd -must be a -.I writable -file descriptor. .SH STANDARDS POSIX.1-2008. .SH HISTORY -POSIX.1-2001, 4.3BSD. -.PP +POSIX.1-2001, 4.2BSD. +.P In Linux 2.2 and earlier, .BR fdatasync () is equivalent to .BR fsync (), and so has no performance advantage. -.PP +.P The .BR fsync () implementations in older kernels and lesser used filesystems @@ -181,6 +179,13 @@ In these cases disk caches need to be disabled using or .BR sdparm (8) to guarantee safe operation. +.P +Under AT&T UNIX System V Release 4 +.I fd +needs to be opened for writing. +This is by itself incompatible with the original BSD interface +and forbidden by POSIX, +but nevertheless survives in HP-UX and AIX. .SH SEE ALSO .BR sync (1), .BR bdflush (2), |