STDIO_EXT


HOME

STDIO_EXT

NAME
SYNOPSIS
DESCRIPTION
ATTRIBUTES
SEE ALSO
COLOPHON

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(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 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.

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

Multithreading (see pthreads(7))
The __fbufsize(), __fpending(), __fpurge() and __fsetlocking() functions do not lock the stream, so they are not thread-safe.

The __flbf(), __freadable(), __freading(), __fwritable(), __fwriting() and _flushlbf() functions are thread-safe.

SEE ALSO

flockfile(3), fpurge(3)

COLOPHON

This page is part of release 3.69 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man−pages/.




More Linux Commands

manpages/cacosh.3.html
cacosh(3) - complex arc hyperbolic cosine - Linux man page
The cacosh() function calculates the complex arc hyperbolic cosine of z. If y = cacosh(z), then z = ccosh(y). The imaginary part of y is chosen in the interval

manpages/archive.8.html
archive(8) - Usenet article archiver - Linux manual page....
archive makes copies of files specified on its standard input. It is normally run either as a channel feed under innd or by a script before news.daily is run. a

manpages/ifcfg-tunnel.5.html
ifcfg-tunnel(5) - network tunnel interface configuration tool
It is possible to create static IP tunnel interfaces for three different protocols: SIT IPv6 over IPv4 tunnel GRE universal IPv4 tunnel IPIP. creation of user..

manpages/loginctl.1.html
loginctl(1) Control the systemd login manager (Man Page)....
loginctl may be used to introspect and control the state of the systemd(1) login manager systemd-logind.service(8). OPTIONS The following options are understood

manpages/pamdepth.1.html
pamdepth(1) - change the maxval in a Netpbm image (ManPage)
This program is part of Netpbm(1) pamdepth reads a Netpbm image as input, changes its depth (color resolution), and writes out the resulting Netpbm image. I.e.

manpages/gnutls_x509_crq_get_attribute_info.3.html
gnutls_x509_crq_get_attribute_info(3) - API function........
This function will return the requested attribute OID in the certificate, and the critical flag for it. The attribute OID will be stored as a string in the prov

manpages/gnutls_x509_crt_check_issuer.3.html
gnutls_x509_crt_check_issuer(3) - API function (Man Page)...
This function will check if the given certificate was issued by the given issuer. RETURNS It will return true (1) if the given certificate is issued by the give

manpages/acl_entries.3.html
acl_entries(3) - return the number of entries in an ACL.....
The acl_entries() function returns the number of ACL entries that are contained in the ACL referred to by the argument acl. RETURN VALUE The acl_entries() funct

manpages/gnutls_x509_crq_deinit.3.html
gnutls_x509_crq_deinit(3) - API function - Linux man page...
This function will deinitialize a PKCS10 certificate request structure. REPORTING BUGS Report bugs to &lt;bug-gnutls@gnu.org&gt;. GnuTLS home page: http://www.gnu.org

manpages/sync.2.html
sync(2) - commit buffer cache to disk - Linux manual page...
sync() causes all buffered modifications to file metadata and data to be written to the underlying filesystems. syncfs() is like sync(), but synchronizes just t

manpages/XtAppAddTimeOut.3.html
XtAppAddTimeOut(3) - register and remove timeouts (ManPage)
The XtAppAddTimeOut function creates a timeout and returns an identifier for it. The timeout value is set to interval. The callback procedure is called when the

manpages/csinf.3.html
csinf(3) - complex sine function (Library - Linux man page)
The complex sine function is defined as: csin(z) = (exp(i * z) - exp(-i * z)) / (2 * i) VERSIONS These functions first appeared in glibc in version 2.1. CONFORM





We can't live, work or learn in freedom unless the software we use is free.