__fbufsize,
STDIO_EXT(T)        Linux Programmer's Manual        STDIO_EXT(T)



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

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(f);
       void __fpurge(FILE *stream);

DESCRIPTION
       Solaris  introduced  routines  to allow portable access to
       the internals of the FILE structure, and glibc also imple-
       mented 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 parameter 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  flockfile(e)  in case there is more than one
              thread), and the stdio routines will not do locking
              until the state is reset to FSETLOCKING_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.

SEE ALSO
       flockfile(e), fpurge(e)



                            2001-12-16               STDIO_EXT(T)