.\" Copyright (c) 1990, 1991 Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)stdio.3 6.5 (Berkeley) 5/6/91 .\" .\" Converted for Linux, Mon Nov 29 16:07:22 1993, faith@cs.unc.edu .\" Translation revised Mon Aug 17 1998 by Juan Piernas .\" .TH STDIO 3 "29 Noviembre 1993" "BSD MANPAGE" "Manual del programador" .SH NOMBRE stdio \- funciones de biblioteca de entrada/salida estándar. .SH SINOPSIS .B #include .sp .B FILE *stdin; .br .B FILE *stdout; .br .B FILE *stderr; .SH DESCRIPCIÓN La biblioteca de E/S estándar proporciona una interface de corriente (stream) utilizando un sistema de buffers (memoria intermedia) simple y eficiente. La entrada y la salida se mapean en corrientes logicas de datos y las caracteristicas fisicas de E/S permanecen ocultas para el programador. Las funciones y las macros se muestran mas adelante; para mas información se puede recurrir a las paginas del manual individuales para cada una de ellas. .PP Una corriente se asocia con un archivo externo (el cual debe estar en un dispositivo físico) .I abriendo un archivo, el cual se supone que debe ser creado. Crear un archivo existente hara que dicho archivo quede vacio. Si un archivo soporta posicionamiento (como un archivo en disco, y en contraposición a lo que ocurre con un archivo de terminal) entonces un .I marcador de posición asociado a la corriente se situara al principio del archivo (byte cero), a no ser que el archivo sea abierto en modo añadir (append). Si se utiliza esta última modalidad de apertura, el marcador de posición será situado al final del archivo. el indicador de posicion se mantiene en sucesivas lecturas, escrituras y reposicionamientos. Todas las entradas se hacen como si los caracteres hubieran sido leidos mediante sucesivas llamadas a la función .BR fgetc (3) todas las salidas se producen como si todos los caracteres fueran leidos mediante llamadas sucesivas a la función .BR fputc (3) .PP Un archivo se desentiende de una corriente .I cerrando dicho archivo. Las corrientes de salida son descargadas (toda el contenido de la memoria intermedia que no fue escrita al archivo, se transmite en ese momento) antes de que la corriente se desentienda del archivo. El valor de un puntero que apunta a un objeto .B FILE es indeterminado tras el cierre del archivo. .PP Un archivo sera reabierto repitidamente, por la misma u otras ejecuciones de un programa, y sus contenidos seran leidos o modificados (si se puede reposicionar al principio). Si la función main() retorna a quien llamo al programa, o se utiliza la función .BR exit (3) todos los archivos abiertos seran cerrados (consecuentemente todos las corrientes de salida seran descargadas sobre sus respectivos ficheros) antes de que se produzca el cierre efectivo del programa.Otras formas de terminar un programa como .BR abort (3) no se preocupan de cerrar los archivos apropiadamente. .PP Cuando el programa comienza, tres corrientes de texto se inician por defecto y no necesitan ser abiertas explicitamente \(em .I entrada estándar (para la lectura de la entrada convencional), \(em .I salida estándar (para la escritura de la salida convencional) \(em .I salida de error estándar (para la salida de diagnósticos). Estas corrientes se abrevian, respectivamente, como .IR stdin , stdout y .IR stderr . Una vez abierta, la corriente de errores estándar no utiliza memoria intermedia totalmente; las corrientes estándar de entrada y salida lo haran solamente en el caso de que dichas corrientes no hagan referencia a un dispositivo interactivo. .PP Las corrientes de salida que hacen referencia a dispositivos de tipo terminal, siempre utilizan memorias intermedias lineales por defecto; durante la salida hacia cada corriente se escribe automaticamente una corriente de entrada que hace referencia al dispositivo terminal que lee. En los casos donde se requieren una enorme cantidad de calculos, despues de imprimir parte de una linea en un terminal de salida, es necesario efectuar una descarga de la memoria intermedia en la corriente de salida estándar mediante .BR fflush (3) antes de dejarlo y comenzar los calculos para que la salida aparezca. .PP La libreria .B stdio es parte de la libreria .B libc y las rutinas se cargan automaticamente segun son necesitadas por los compiladores .BR cc (1) y .BR pc (1). Las secciones .B SINOPSIS de las siguientes paginas del manual indican que archivos de cabecera (include) deben ser utilizados, en forma de la declaración de la función y mostrando que variables externas resultan de interes. .PP Las siguientes están definidas como macros; estos nombres no deben ser reutilizados sin eliminar primero sus definiciones actuales mediante .BR #undef : .BR BUFSIZ , .BR EOF , .BR FILENAME_MAX , .BR FOPEN_MAX , .BR L_cuserid , .BR L_ctermid , .BR L_tmpnam, .BR NULL , .BR SEEK_END , .BR SEEK_SET , .BR SEE_CUR , .BR TMP_MAX , .BR clearerr , .BR feof , .BR ferror , .BR fileno , .BR fropen , .BR fwopen , .BR getc , .BR getchar , .BR putc , .BR putchar , .BR stderr , .BR stdin , .BR stdout . Existén versiones como función de las macros .BR feof , .BR ferror , .BR clearerr , .BR fileno , .BR getc , .BR getchar , .BR putc , y .B putchar y serán utilizadas si las definiciones de las macros han sido eliminadas explicitamente. .SH "VEA TAMBIÉN" .BR open (2), .BR close (2), .BR read (2), .BR write (2), .BR stdout (3) .SH ERRORES Las funciones estándar para el tratamiento de memoria intermedia no interactuan bien con algunas otras librerias y funciones de sistema, especialmente con .B vfork y .BR abort . No deberia darse el caso bajo Linux. .SH CONFORME A La biblioteca .B stdio cumple con ANSI C3.159-1989 (``ANSI C''). .SH "LISTA DE FUNCIONES" .TP .B Función .B Descripción .TP clearerr comprueba y reinicia el estado de la corriente .TP fclose cierra una corriente .TP fdopen funciones de apertura de corriente .TP feof comprueba y reinicia el estado de la corriente .TP ferror comprueba y reinicia el estado de la corriente .TP fflush descarga la memoria intermedia de una corriente sobre el archivo .TP fgetc recoge el próximo caracter de una corriente de entrada .TP fgetline recoge una línea de una corriente de entrada .TP fgetpos reposición en una corriente .TP fgets recoge una linea de una corriente de entrada .TP fileno comprueba y reinicia el estado de la corriente .TP fopen funciones de apertura de corriente .TP fprintf conversión para salida formateada. .TP fpurge descarga el buffer de una corriente sobre el archivo .TP fputc envia un caracter o una palabra a una corriente .TP fputs envia una linea a una corriente .TP fread entrada/salida binaria .TP freopen funciones de apertura de corriente .TP fropen abre una corriente .TP fscanf conversión para entrada con formato .TP fseek reposiciona una corriente .TP fsetpos reposiciona una corriente .TP ftell reposiciona una corriente .TP fwrite entrada/salida binaria .TP getc recoge el próximo caracter o palabra de una corriente de entrada .TP getchar recoge el próximo caracter o palabra de una corriente de entrada .TP gets recoge una línea de una corriente .TP getw recoge el próximo caracter o palabra de una corriente de entrada .TP mktemp crea un nombre de archivo temporal (único) .TP perror mensajes de error del sistema .TP printf conversión para salida formateada .TP putc envia un caracter o palabra a una corriente .TP putchar envía un caracter o palabra a una corriente .TP puts envía una línea a una corriente .TP putw envía un caracter o palabra a una corriente .TP remove elimina una entrada de directorio .TP rewind reposiciona una corriente .TP scanf conversión para entrada formateada .TP setbuf operaciones de corriente con memoria intermedia .TP setbuffer operaciones de corriente con memoria intermedia .TP setlinebuf operaciones de corriente con memoria intermedia .TP setvbuf operaciones de corriente con memoria intermedia .TP sprintf conversión para salida formateada .TP sscanf conversión para entrada formateada .TP strerror mensajes de error del sistema .TP sys_errlist mensajes de error del sistema .TP sys_nerr mensajes de error del sistema .TP tempnam rutinas para archivado temporal .TP tmpfile rutinas para archivado temporal .TP tmpnam rutinas para archivado temporal .TP ungetc ignora un caracter de una corriente de entrada .TP vfprintf conversión para salida formateada .TP vfscanf conversión para entrada formateada .TP vprintf conversión para salida formateada .TP vscanf conversión para entrada formateada .TP vsprintf conversión para salida formateada .TP vsscanf conversión para entrada formateada