stdio_ext(3) | Library Functions Manual | stdio_ext(3) |
__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces to stdio FILE structure
Standard C library (libc, -lc)
#include <stdio.h> #include <stdio_ext.h>
size_t __fbufsize(FILE *stream); size_t __fpending(FILE *stream); int __flbf(FILE *stream); int __freadable(FILE *stream); int __fwritable(FILE *stream); int __freading(FILE *stream); int __fwriting(FILE *stream); int __fsetlocking(FILE *stream, int type); void _flushlbf(void); void __fpurge(FILE *stream);
Solaris introduced routines to allow portable access to the internals of the FILE structure, and glibc also implemented these.
The __fbufsize() function returns the size of the buffer currently used by the given stream.
The __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.
The __flbf() function returns a nonzero value if the stream is line-buffered, and zero otherwise.
The __freadable() function returns a nonzero value if the stream allows reading, and zero otherwise.
The __fwritable() function returns a nonzero value if the stream allows writing, and zero otherwise.
The __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.
The __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.
The __fsetlocking() function can be used to select the desired type of locking on the stream. It returns the current type. The type argument can take the following three values:
The _flushlbf() function flushes all line-buffered streams. (Presumably so that output to a terminal is forced out, say before reading keyboard input.)
The __fpurge() function discards the contents of the stream's buffer.
For an explanation of the terms used in this section, see attributes(7).
Interface | Attribute | Value |
__fbufsize (), __fpending (), __fpurge (), __fsetlocking () | Thread safety | MT-Safe race:stream |
__flbf (), __freadable (), __freading (), __fwritable (), __fwriting (), _flushlbf () | Thread safety | MT-Safe |
2023-01-07 | Linux man-pages 6.03 |