.\" Copyright (C) 2001 Andries Brouwer . .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Traducido por Miguel Pérez Ibars el 13-agosto-2004 .\" .TH STDIO_EXT 3 "16 diciembre 2001" "" "Manual del Programador de Linux" .SH NOMBRE __fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- interfaces para la estructura FILE de stdio .SH SINOPSIS .B #include .br .B #include .sp .BI "size_t __fbufsize(FILE *" stream ); .br .BI "size_t __fpending(FILE *" stream ); .br .BI "int __flbf(FILE *" stream ); .br .BI "int __freadable(FILE *" stream ); .br .BI "int __fwritable(FILE *" stream ); .br .BI "int __freading(FILE *" stream ); .br .BI "int __fwriting(FILE *" stream ); .br .BI "int __fsetlocking(FILE *" stream ", int " type ); .br .BI "void _flushlbf(void); .br .BI "void __fpurge(FILE *" stream ); .SH DESCRIPCIÓN Solaris introdujo rutinas para permitir el acceso portable a los detalles internos de la estructura FILE, y glibc también las implementa. .LP La función .B __fbufsize() devuelve el tamaño del buffer usado actualmente por el flujo dado. .LP La función .B __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. .LP La función .B __flbf() devuelve un valor distinto de cero si el flujo usa buffer de línea, y cero en otro caso. .LP La función .B __freadable() devuelve un valor distinto de cero si el flujo permite lectura, y cero en otro caso. .LP La función .B __fwritable() devuelve un valor distinto de cero si el flujo permite escritura, y cero en caso contrario. .LP La función .B __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. .LP La función .B __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. .LP La función .B __fsetlocking() puede utilizarse para seleccionar el tipo deseado de bloqueo sobre el flujo. Devuelve el tipo de bloqueo actual. El parámetro .I type puede tomar los siguientes tres valores: .TP .B 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. .TP .B FSETLOCKING_BYCALLER El invocador se preocupará del bloqueo (posiblemente usando .BR 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. .TP .B FSETLOCKING_QUERY No cambia el tipo de bloqueo. (Sólo lo devuelve.) .LP La función .B _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.) .LP La función .B __fpurge() desecha el contenido del buffer del flujo. .SH "VÉASE TAMBIÉN" .BR flockfile (3), .BR fpurge (3)