Other Alias
__fbufsize, __flbf, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbfSINOPSIS
#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);
DESCRIPCIÓN
Solaris introdujo rutinas para permitir el acceso portable a los detalles internos de la estructura FILE, y glibc también las implementa.La función __fbufsize() devuelve el tamaño del buffer usado actualmente por el flujo dado.
La función __fpending() devuelve el número de bytes en el buffer de salida. Para flujos orientados a caracteres anchos la unidad es el carácter ancho. Esta función no está definida sobre buffers en modo lectura, o abiertos como solo-lectura.
La función __flbf() devuelve un valor distinto de cero si el flujo usa buffer de línea, y cero en otro caso.
La función __freadable() devuelve un valor distinto de cero si el flujo permite lectura, y cero en otro caso.
La función __fwritable() devuelve un valor distinto de cero si el flujo permite escritura, y cero en caso contrario.
La función __freading() devuelve un valor distinto de cero si el flujo es de solo-lectura, o si la última operación sobre el flujo fue una operación de lectura, y cero en otro caso.
La función __fwriting() devuelve un valor distinto de cero si el flujo es de solo-lectura (o solo-añadidura), o si la última operación sobre el flujo fue una operación de escritura, y cero en otro caso.
La función __fsetlocking() puede utilizarse para seleccionar el tipo deseado de bloqueo sobre el flujo. Devuelve el tipo de bloqueo actual. El parámetro type puede tomar los siguientes tres valores:
- FSETLOCKING_INTERNAL
- Realiza bloqueo implícito en cada operación sobre el flujo dado (excepto para las que se especifican en *_unlocked). Éste es el valor por defecto.
- FSETLOCKING_BYCALLER
- El invocador se preocupará del bloqueo (posiblemente usando flockfile(3) en el caso de que haya más de un hilo), y las rutinas de stdio no realizarán bloqueo hasta que el estado sea restablecido a FSETLOCKING_INTERNAL.
- FSETLOCKING_QUERY
- No cambia el tipo de bloqueo. (Sólo lo devuelve.)
La función _flushlbf() vacía todos los flujos con buffer de línea. (Presumiblemente para forzar la salida a la terminal, digamos antes de leer la entrada de teclado.)
La función __fpurge() desecha el contenido del buffer del flujo.