Manpages

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

CONFORME A

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)