dwww Home | Manual pages | Find package

stdio_ext(3)                Library Functions Manual               stdio_ext(3)

NAME
       __fbufsize,   __flbf,  __fpending,  __fpurge,  __freadable,  __freading,
       __fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces to  stdio
       FILE structure

LIBRARY
       Standard C library (libc, -lc)

SYNOPSIS
       #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);

DESCRIPTION
       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:

       FSETLOCKING_INTERNAL
              Perform implicit locking around  every  operation  on  the  given
              stream (except for the *_unlocked ones).  This is the default.

       FSETLOCKING_BYCALLER
              The  caller  will take care of the locking (possibly using flock-
              file(3) in case there is more than one  thread),  and  the  stdio
              routines  will  not  do locking until the state is reset to FSET-
              LOCKING_INTERNAL.

       FSETLOCKING_QUERY
              Don't change the type of locking.  (Only return it.)

       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.

ATTRIBUTES
       For an explanation of the terms used in this section, see attributes(7).
       ┌────────────────────────────────┬───────────────┬─────────────────────┐
       │ Interface                      Attribute     Value               │
       ├────────────────────────────────┼───────────────┼─────────────────────┤
       │ __fbufsize(), __fpending(),    │ Thread safety │ MT-Safe race:stream │
       │ __fpurge(), __fsetlocking()    │               │                     │
       ├────────────────────────────────┼───────────────┼─────────────────────┤
       │ __flbf(), __freadable(),       │ Thread safety │ MT-Safe             │
       │ __freading(), __fwritable(),   │               │                     │
       │ __fwriting(), _flushlbf()      │               │                     │
       └────────────────────────────────┴───────────────┴─────────────────────┘

SEE ALSO
       flockfile(3), fpurge(3)

Linux man-pages 6.9.1              2024-05-02                      stdio_ext(3)

Generated by dwww version 1.16 on Tue Dec 16 04:03:13 CET 2025.