diff options
Diffstat (limited to 'man3/stdio_ext.3')
-rw-r--r-- | man3/stdio_ext.3 | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/man3/stdio_ext.3 b/man3/stdio_ext.3 new file mode 100644 index 000000000..d8cb85de6 --- /dev/null +++ b/man3/stdio_ext.3 @@ -0,0 +1,123 @@ +.\" 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 +.BI "void _flushlbf(void); +.br +.BI "void __fpurge(FILE *" stream ); +.SH DESCRIPTION +Solaris introduced routines to allow portable access to the +internals of the FILE structure, and glibc also implemented these. +.LP +The +.B __fbufsize() +function returns the size of the buffer currently used +by the given stream. +.LP +The +.B __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 +.B __flbf() +function returns a nonzero value if the stream is line-buffered, +and zero otherwise. +.LP +The +.B __freadable() +function returns a nonzero value if the stream allows reading, +and zero otherwise. +.LP +The +.B __fwritable() +function returns a nonzero value if the stream allows writing, +and zero otherwise. +.LP +The +.B __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. +.LP +The +.B __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. +.LP +The +.B __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 FSETLOCKING_INTERNAL. +.TP +.B FSETLOCKING_QUERY +Don't change the type of locking. (Only return it.) +.LP +The +.B _flushlbf() +function flushes all line-buffered streams. (Presumably so that +output to a terminal is forced out, say before reading keyboard input.) +.LP +The +.B __fpurge() +function discards the contents of the stream's buffer. +.SH "SEE ALSO" +.BR flockfile (3), +.BR fpurge (3) |