aboutsummaryrefslogtreecommitdiffstats
path: root/man/man3/stdio_ext.3
diff options
context:
space:
mode:
authorAlejandro Colomar <alx.manpages@gmail.com>2022-09-05 23:03:38 +0200
committerAlejandro Colomar <alx.manpages@gmail.com>2022-09-05 23:03:47 +0200
commit70ac1c4785fc1e158ab2349a962dba2526bf4fbc (patch)
treebff270e2496dd284bccfc1271b43946f5d225224 /man/man3/stdio_ext.3
parent5423a6f86b2b920a5f3e8cf8d759b513050f2d33 (diff)
downloadman-pages-70ac1c4785fc1e158ab2349a962dba2526bf4fbc.tar.gz
src.mk, All pages: Move man* to man/
The root of the repository is becoming a bit overpopulated and unorganized, due to the recent addition of more mandirs, and more informative and configuration files too. Let's create a specific mandir <man/> that contains the mandirs <man[1-8]*>. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Diffstat (limited to 'man/man3/stdio_ext.3')
-rw-r--r--man/man3/stdio_ext.3137
1 files changed, 137 insertions, 0 deletions
diff --git a/man/man3/stdio_ext.3 b/man/man3/stdio_ext.3
new file mode 100644
index 0000000000..d166a93224
--- /dev/null
+++ b/man/man3/stdio_ext.3
@@ -0,0 +1,137 @@
+.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH STDIO_EXT 3 2021-03-22 "Linux man-pages (unreleased)"
+.SH NAME
+__fbufsize, __flbf, __fpending, __fpurge, __freadable,
+__freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \-
+interfaces to stdio FILE structure
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <stdio.h>
+.B #include <stdio_ext.h>
+.PP
+.BI "size_t __fbufsize(FILE *" stream );
+.BI "size_t __fpending(FILE *" stream );
+.BI "int __flbf(FILE *" stream );
+.BI "int __freadable(FILE *" stream );
+.BI "int __fwritable(FILE *" stream );
+.BI "int __freading(FILE *" stream );
+.BI "int __fwriting(FILE *" stream );
+.BI "int __fsetlocking(FILE *" stream ", int " type );
+.B "void _flushlbf(void);"
+.BI "void __fpurge(FILE *" stream );
+.fi
+.SH DESCRIPTION
+Solaris introduced routines to allow portable access to the
+internals of the
+.I FILE
+structure, and glibc also implemented these.
+.PP
+The
+.BR __fbufsize ()
+function returns the size of the buffer currently used
+by the given stream.
+.PP
+The
+.BR __fpending ()
+function returns the number of bytes in the output buffer.
+For wide-oriented streams the unit is wide characters.
+This function is undefined on buffers in reading mode,
+or opened read-only.
+.PP
+The
+.BR __flbf ()
+function returns a nonzero value if the stream is line-buffered,
+and zero otherwise.
+.PP
+The
+.BR __freadable ()
+function returns a nonzero value if the stream allows reading,
+and zero otherwise.
+.PP
+The
+.BR __fwritable ()
+function returns a nonzero value if the stream allows writing,
+and zero otherwise.
+.PP
+The
+.BR __freading ()
+function returns a nonzero value if the stream is read-only, or
+if the last operation on the stream was a read operation,
+and zero otherwise.
+.PP
+The
+.BR __fwriting ()
+function returns a nonzero value if the stream is write-only (or
+append-only), or if the last operation on the stream was a write
+operation, and zero otherwise.
+.PP
+The
+.BR __fsetlocking ()
+function can be used to select the desired type of locking on the stream.
+It returns the current type.
+The
+.I type
+argument can take the following three values:
+.TP
+.B FSETLOCKING_INTERNAL
+Perform implicit locking around every operation on the given stream
+(except for the *_unlocked ones).
+This is the default.
+.TP
+.B FSETLOCKING_BYCALLER
+The caller will take care of the locking (possibly using
+.BR flockfile (3)
+in case there is more than one thread), and the stdio routines
+will not do locking until the state is reset to
+.BR FSETLOCKING_INTERNAL .
+.TP
+.B FSETLOCKING_QUERY
+Don't change the type of locking.
+(Only return it.)
+.PP
+The
+.BR _flushlbf ()
+function flushes all line-buffered streams.
+(Presumably so that
+output to a terminal is forced out, say before reading keyboard input.)
+.PP
+The
+.BR __fpurge ()
+function discards the contents of the stream's buffer.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.ad l
+.nh
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR __fbufsize (),
+.BR __fpending (),
+.BR __fpurge (),
+.BR __fsetlocking ()
+T} Thread safety MT-Safe race:stream
+T{
+.BR __flbf (),
+.BR __freadable (),
+.BR __freading (),
+.BR __fwritable (),
+.BR __fwriting (),
+.BR _flushlbf ()
+T} Thread safety MT-Safe
+.TE
+.hy
+.ad
+.sp 1
+.SH SEE ALSO
+.BR flockfile (3),
+.BR fpurge (3)