NOMBRE¶
stdio - funciones de biblioteca de entrada/salida estándar.
SINOPSIS¶
#include <stdio.h>
FILE *stdin;
FILE *stdout;
FILE *stderr;
DESCRIPCIÓN¶
La biblioteca de E/S estándar proporciona una interfaz de flujo (stream)
utilizando un sistema de buffers (memoria intermedia) simple y eficiente. La
entrada y la salida se mapean en flujos lógicos 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.
Un flujo se asocia con un archivo externo (el cual debe estar en un dispositivo
físico)
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
marcador de posición asociado al flujo se situará 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
fgetc(3) todas las salidas se producen como si todos los caracteres
fueran leidos mediante llamadas sucesivas a la función
fputc(3)
Un archivo se desentiende de un flujo
cerrando dicho archivo. Los flujos
de salida son descargados (toda el contenido de la memoria intermedia que no
fue escrita al archivo, se transmite en ese momento) antes de que el flujo se
desentienda del fichero. El valor de un puntero que apunta a un objeto
FILE es indeterminado tras el cierre del archivo.
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
exit(3) todos los archivos
abiertos seran cerrados (consecuentemente todos los flujos de salida
serán descargados sobre sus respectivos ficheros) antes de que se
produzca el cierre efectivo del programa.Otras formas de terminar un programa
como
abort(3) no se preocupan de cerrar los archivos apropiadamente.
Cuando el programa comienza, tres flujos de texto se inician por defecto y no
necesitan ser abiertas explicitamente —
entrada estándar
(para la lectura de la entrada convencional), —
salida
estándar (para la escritura de la salida convencional) —
salida de error estándar (para la salida de diagnósticos).
Estos flujos se abrevian, respectivamente, como
stdin,
stdout y
stderr. Una vez abierta, el flujo de errores estándar no utiliza
memoria intermedia totalmente; los flujos estándar de entrada y salida lo
harán solamente en el caso de que dichos flujos no hagan referencia a un
dispositivo interactivo.
Los flujos de salida que hacen referencia a dispositivos de tipo terminal,
siempre utilizan memorias intermedias lineales por defecto; durante la salida
hacia cada flujo se escribe automáticamente un flujo 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 el flujo de salida estándar mediante
fflush(3) antes
de dejarlo y comenzar los calculos para que la salida aparezca.
La biblioteca
stdio es parte de la biblioteca
libc y las rutinas
se cargan automaticamente segun son necesitadas por los compiladores
cc(1) y
pc(1). Las secciones
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.
Las siguientes están definidas como macros; estos nombres no deben ser
reutilizados sin eliminar primero sus definiciones actuales mediante
#undef:
BUFSIZ,
EOF,
FILENAME_MAX,
FOPEN_MAX,
L_cuserid,
L_ctermid,
L_tmpnam,
NULL,
SEEK_END,
SEEK_SET,
SEE_CUR,
TMP_MAX,
clearerr,
feof,
ferror,
fileno,
fropen,
fwopen,
getc,
getchar,
putc,
putchar,
stderr,
stdin,
stdout. Existén versiones como
función de las macros
feof,
ferror,
clearerr,
fileno,
getc,
getchar,
putc, y
putchar y
serán utilizadas si las definiciones de las macros han sido eliminadas
explicitamente.
LISTA DE FUNCIONES¶
- Función
- Descripción
- clearerr
- comprueba y reinicia el estado del flujo
- fclose
- cierra un flujo
- fdopen
- funciones de apertura de flujo
- feof
- comprueba y reinicia el estado del flujo
- ferror
- comprueba y reinicia el estado del flujo
- fflush
- descarga la memoria intermedia del flujo sobre el
fichero
- fgetc
- recoge el próximo caracter de un flujo de entrada
- fgetpos
- reposición en un flujo
- fgets
- recoge una linea de un flujo de entrada
- fileno
- comprueba y reinicia el estado del flujo
- fopen
- funciones de apertura de flujo
- fprintf
- conversión para salida formateada.
- fpurge
- descarga el buffer de un flujo sobre el fichero
- fputc
- envia un caracter o una palabra a un flujo
- fputs
- envia una línea a un flujo
- fread
- entrada/salida binaria
- freopen
- funciones de apertura de flujo
- fropen
- abre un flujo
- fscanf
- conversión para entrada con formato
- fseek
- reposiciona un flujo
- fsetpos
- reposiciona un flujo
- ftell
- reposiciona un flujo
- fwrite
- entrada/salida binaria
- getc
- recoge el próximo carácter o palabra de un flujo
de entrada
- getchar
- recoge el próximo caracter o palabra de un flujo de
entrada
- gets
- recoge una línea de un flujo
- getw
- recoge el próximo caracter o palabra de un flujo de
entrada
- mktemp
- crea un nombre de archivo temporal (único)
- perror
- mensajes de error del sistema
- printf
- conversión para salida formateada
- putc
- envia un carácter o palabra a un flujo
- putchar
- envía un carácter o palabra a un flujo
- puts
- envía una línea a un flujo
- putw
- envía un carácter o palabra a un flujo
- remove
- elimina una entrada de directorio
- rewind
- reposiciona un flujo
- scanf
- conversión para entrada formateada
- setbuf
- operaciones de flujo con memoria intermedia
- setbuffer
- operaciones de flujo con memoria intermedia
- setlinebuf
- operaciones de flujo con memoria intermedia
- setvbuf
- operaciones de flujo con memoria intermedia
- sprintf
- conversión para salida formateada
- sscanf
- conversión para entrada formateada
- strerror
- mensajes de error del sistema
- sys_errlist
- mensajes de error del sistema
- sys_nerr
- mensajes de error del sistema
- tempnam
- rutinas para archivado temporal
- tmpfile
- rutinas para archivado temporal
- tmpnam
- rutinas para archivado temporal
- ungetc
- ignora un carácter de un flujo de entrada
- vfprintf
- conversión para salida formateada
- vfscanf
- conversión para entrada formateada
- vprintf
- conversión para salida formateada
- vscanf
- conversión para entrada formateada
- vsprintf
- conversión para salida formateada
- vsscanf
- conversión para entrada formateada
La biblioteca
stdio es conforme con ANSI X3.159-1989 (``ANSI C'').
VÉASE TAMBIÉN¶
open(2),
close(2),
read(2),
write(2),
stdout(3)