OSDN Git Service

LDP: Update original to LDP v3.79
[linuxjm/LDP_man-pages.git] / original / man3 / fflush.3
index b3521bb..f64f7a5 100644 (file)
@@ -5,6 +5,7 @@
 .\" Chris Torek and the American National Standards Committee X3,
 .\" on Information Processing Systems.
 .\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
+.\" %%%LICENSE_END
 .\"
 .\"     @(#)fflush.3   5.4 (Berkeley) 6/29/91
 .\"
 .\" Converted for Linux, Mon Nov 29 15:22:01 1993, faith@cs.unc.edu
 .\"
-.\" Modified 2000-07-22 by Nicolás Lichtmaier <nick@debian.org>
+.\" Modified 2000-07-22 by Nicolás Lichtmaier <nick@debian.org>
 .\" Modified 2001-10-16 by John Levon <moz@compsoc.man.ac.uk>
 .\"
-.TH FFLUSH 3  2009-09-06 "GNU" "Linux Programmer's Manual"
+.TH FFLUSH 3  2015-02-01 "GNU" "Linux Programmer's Manual"
 .SH NAME
 fflush \- flush a stream
 .SH SYNOPSIS
@@ -53,10 +55,13 @@ For output streams,
 forces a write of all user-space buffered data for the given output or update
 .I stream
 via the stream's underlying write function.
-For input streams,
+
+For input streams associated with seekable files
+(e.g., disk files, but not pipes or terminals),
 .BR fflush ()
 discards any buffered data that has been fetched from the underlying file,
 but has not been consumed by the application.
+
 The open status of the stream is unaffected.
 .PP
 If the
@@ -66,10 +71,12 @@ argument is NULL,
 flushes
 .I all
 open output streams.
+.\" mtk: POSIX specifies that only output streams are flushed for this case.
+.\" Also verified for glibc by experiment.
 .PP
 For a nonlocking counterpart, see
 .BR unlocked_stdio (3).
-.SH "RETURN VALUE"
+.SH RETURN VALUE
 Upon successful completion 0 is returned.
 Otherwise,
 .B EOF
@@ -79,7 +86,7 @@ is set to indicate the error.
 .SH ERRORS
 .TP
 .B EBADF
-.I Stream
+.I stream
 is not an open stream, or is not open for writing.
 .PP
 The function
@@ -88,22 +95,26 @@ may also fail and set
 .I errno
 for any of the errors specified for
 .BR write (2).
-.SH "CONFORMING TO"
+.SH ATTRIBUTES
+.SS Multithreading (see pthreads(7))
+The
+.BR fflush ()
+function is thread-safe.
+.SH CONFORMING TO
 C89, C99, POSIX.1-2001, POSIX.1-2008.
 
-The standards do not specify the behavior for input streams.
-Most other implementations behave the same as Linux.
-.\" Verified on: Solaris 8.
+POSIX.1-2001 did not specify the behavior for flushing of input streams,
+but the behavior is specified in POSIX.1-2008.
 .SH NOTES
 Note that
 .BR fflush ()
-only flushes the user space buffers provided by the C library.
+flushes only the user-space buffers provided by the C library.
 To ensure that the data is physically stored on disk
 the kernel buffers must be flushed too, for example, with
 .BR sync (2)
 or
 .BR fsync (2).
-.SH "SEE ALSO"
+.SH SEE ALSO
 .BR fsync (2),
 .BR sync (2),
 .BR write (2),
@@ -111,3 +122,12 @@ or
 .BR fopen (3),
 .BR setbuf (3),
 .BR unlocked_stdio (3)
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.