mirror of https://github.com/mkerrisk/man-pages
132 lines
3.8 KiB
Groff
132 lines
3.8 KiB
Groff
.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
|
|
.\"
|
|
.\" 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.
|
|
.\"
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
.\" permission notice identical to this one.
|
|
.\"
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
.\" have taken the same level of care in the production of this manual,
|
|
.\" which is licensed free of charge, as they might when working
|
|
.\" professionally.
|
|
.\"
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
.\"
|
|
.TH STDIO_EXT 3 2001-12-16 "" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
__fbufsize, __flbf, __fpending, __fpurge, __freadable,
|
|
__freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- interfaces to stdio FILE structure
|
|
.SH SYNOPSIS
|
|
.B #include <stdio.h>
|
|
.br
|
|
.B #include <stdio_ext.h>
|
|
.sp
|
|
.BI "size_t __fbufsize(FILE *" stream );
|
|
.br
|
|
.BI "size_t __fpending(FILE *" stream );
|
|
.br
|
|
.BI "int __flbf(FILE *" stream );
|
|
.br
|
|
.BI "int __freadable(FILE *" stream );
|
|
.br
|
|
.BI "int __fwritable(FILE *" stream );
|
|
.br
|
|
.BI "int __freading(FILE *" stream );
|
|
.br
|
|
.BI "int __fwriting(FILE *" stream );
|
|
.br
|
|
.BI "int __fsetlocking(FILE *" stream ", int " type );
|
|
.br
|
|
.B "void _flushlbf(void);"
|
|
.br
|
|
.BI "void __fpurge(FILE *" stream );
|
|
.SH DESCRIPTION
|
|
Solaris introduced routines to allow portable access to the
|
|
internals of the
|
|
.I FILE
|
|
structure, and glibc also implemented these.
|
|
.LP
|
|
The
|
|
.BR __fbufsize ()
|
|
function returns the size of the buffer currently used
|
|
by the given stream.
|
|
.LP
|
|
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.
|
|
.LP
|
|
The
|
|
.BR __flbf ()
|
|
function returns a non-zero value if the stream is line-buffered,
|
|
and zero otherwise.
|
|
.LP
|
|
The
|
|
.BR __freadable ()
|
|
function returns a non-zero value if the stream allows reading,
|
|
and zero otherwise.
|
|
.LP
|
|
The
|
|
.BR __fwritable ()
|
|
function returns a non-zero value if the stream allows writing,
|
|
and zero otherwise.
|
|
.LP
|
|
The
|
|
.BR __freading ()
|
|
function returns a non-zero value if the stream is read-only, or
|
|
if the last operation on the stream was a read operation,
|
|
and zero otherwise.
|
|
.LP
|
|
The
|
|
.BR __fwriting ()
|
|
function returns a non-zero 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.
|
|
.LP
|
|
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
|
|
parameter 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.)
|
|
.LP
|
|
The
|
|
.BR _flushlbf ()
|
|
function flushes all line-buffered streams.
|
|
(Presumably so that
|
|
output to a terminal is forced out, say before reading keyboard input.)
|
|
.LP
|
|
The
|
|
.BR __fpurge ()
|
|
function discards the contents of the stream's buffer.
|
|
.SH "SEE ALSO"
|
|
.BR flockfile (3),
|
|
.BR fpurge (3)
|