NOMBRE¶
__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading,
__fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces para la
estructura FILE de stdio
SINOPSIS¶
#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.
VÉASE TAMBIÉN¶
flockfile(3),
fpurge(3)