summaryrefslogtreecommitdiffstats
path: root/man/man3/fflush.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/fflush.3')
-rw-r--r--man/man3/fflush.3115
1 files changed, 115 insertions, 0 deletions
diff --git a/man/man3/fflush.3 b/man/man3/fflush.3
new file mode 100644
index 0000000..5670ba4
--- /dev/null
+++ b/man/man3/fflush.3
@@ -0,0 +1,115 @@
+'\" t
+.\" Copyright (c) 1990, 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to Berkeley by
+.\" Chris Torek and the American National Standards Committee X3,
+.\" on Information Processing Systems.
+.\"
+.\" SPDX-License-Identifier: BSD-4-Clause-UC
+.\"
+.\" @(#)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 2001-10-16 by John Levon <moz@compsoc.man.ac.uk>
+.\"
+.TH fflush 3 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+fflush \- flush a stream
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <stdio.h>
+.P
+.BI "int fflush(FILE *_Nullable " stream );
+.fi
+.SH DESCRIPTION
+For output streams,
+.BR fflush ()
+forces a write of all user-space buffered data for the given output or update
+.I stream
+via the stream's underlying write function.
+.P
+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.
+.P
+The open status of the stream is unaffected.
+.P
+If the
+.I stream
+argument is NULL,
+.BR fflush ()
+flushes
+.I all
+open output streams.
+.\" mtk: POSIX specifies that only output streams are flushed for this case.
+.\" Also verified for glibc by experiment.
+.P
+For a nonlocking counterpart, see
+.BR unlocked_stdio (3).
+.SH RETURN VALUE
+Upon successful completion 0 is returned.
+Otherwise,
+.B EOF
+is returned and
+.I errno
+is set to indicate the error.
+.SH ERRORS
+.TP
+.B EBADF
+.I stream
+is not an open stream, or is not open for writing.
+.P
+The function
+.BR fflush ()
+may also fail and set
+.I errno
+for any of the errors specified for
+.BR write (2).
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR fflush ()
+T} Thread safety MT-Safe
+.TE
+.SH STANDARDS
+C11, POSIX.1-2008.
+.SH HISTORY
+C89, POSIX.1-2001, POSIX.1-2008.
+.P
+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 ()
+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
+.BR fsync (2),
+.BR sync (2),
+.BR write (2),
+.BR fclose (3),
+.BR fileno (3),
+.BR fopen (3),
+.BR fpurge (3),
+.BR setbuf (3),
+.BR unlocked_stdio (3)