Pages - Menu

martes, 4 de febrero de 2014

La librería stdio.h

El archivo de cabecera de la biblioteca estándar de C stdio.h se utiliza para utilizar las capacidades de entrada y salida más comunes en el lenguaje C como scanf o printf.

Foto tomada de freedigitalphotos.net
Ya vimos en su momento la especificación de la librería en el curso básico de C, no obstante vamos a definirla por completo para tener agrupados todos los archivos de cabecera.

Gracias a la librería stdio.h podemos utilizar los comandos estándar de entrada y salida además de los comandos básicos de manipulación de ficheros.

La información proporcionada por Wikipedia es la siguiente:

Las funciones incluidas son:

Nombre
Descripción
Funciones de manipulación de ficheros
fclose
Cierra un fichero a través de su puntero.
fopen,freopen,fdopen
Abre un fichero para lectura, para escritura/reescritura o para adición.
remove
Elimina un fichero.
rename
Cambia al fichero de nombre.
rewind
Coloca el indicador de posición de fichero para el stream apuntado por stream al comienzo del fichero.
tmpfile
Crea y abre un fichero temporal que es borrado cuando cerramos con la función fclose().
Funciones de manipulación de entradas y salidas.
clearerr
Despeja los indicadores de final de fichero y de posición de fichero para el stream apuntado por stream al comienzo del fichero.
feof
Comprueba el indicador de final de fichero.
ferror
Comprueba el indicador de errores.
fflush
Si stream apunta a un stream de salida o de actualización cuya operación más reciente no era de entrada, la función fflush envía cualquier dato aún sin escribir al entorno local o a ser escrito en el fichero; si no, entonces el comportamiento no está definido. Si stream es un puntero nulo, la función fflush realiza el despeje para todos los streams cuyo comportamiento está descrito anteriormente.
fgetpos
Devuelve la posición actual del fichero.
fgetc
Devuelve un carácter de un fichero.
fgets
Consigue una cadena de caracteres de un fichero.
fputc
Escribe un carácter en un fichero.
fputs
Escribe una cadena de caracteres en un fichero.
ftell
Devuelve la posición actual del fichero como número de bytes.
fseek
Sitúa el puntero de un fichero en una posición aleatoria.
fsetpos
Cambia la posición actual de un fichero.
fread
lee diferentes tamaños de datos de un fichero.
fwrite
Envía, desde el array apuntado por puntero, hasta nmemb de elementos cuyo tamaño es especificado por tamaño. El indicador de posición de ficheros es avanzado por el número de caracteres escritos correctamente. Si existe un error, el valor resultante del indicador de posición de ficheros es indeterminado.
getc
Devuelve un carácter desde un fichero.
getchar
Igual que getc.
gets
Lee caracteres de entrada hasta que encuentra un salto de línea, y los almacena en un único argumento.
printf,fprintf,sprintf
snprintf
Usados para imprimir salidas de datos.
vprintf
También utilizado para imprimir salidas.
perror
Escribe un mensaje de error a stderr.
putc
Devuelve un carácter de un fichero.
putchar,fputchar
Igual que putc(stdout).
scanf,fscanf,sscanf
Utilizado para introducir entradas.
vfscanf,vscanf,vsscanf
También utilizado para introducir entradas.
setbuf
Esta función es equivalente a la función setvbuf pasando los valores _IOFBF para modo y BUFSIZ para tamaño, o (si acumulador es un puntero nulo), con el valor _IONBF para modo.
setvbuf
Sólo puede ser usada después de que el stream apuntado por stream ha sido asociado con un fichero abierto y antes de otra operación cualquiera es llevada acabo al stream. El argumento modo determina cómo stream será almacenado según lo siguiente: _IOFBF ocasiona la entrada/salida a ser completamente almacenado; _IOLBF ocasiona la entrada/salida a almacenar por líneas; _IONBF ocasiona la entrada/salida a no ser almacenado. Si acumulador no es un puntero nulo, el array al que es apuntado puede ser usado en vez de la acumulación adjudicada por la función setvbuf. El argumento tamaño especifica el tamaño del array.
tmpnam
Genera una cadena de caracteres que es un nombre válido para ficheros y que no es igual al nombre de un fichero existente. La función tmpnam genera una cadena diferente cada vez que es llamada, hasta un máximo de TMP_MAX veces. Si la función es llamada más veces que TMP_MAX, entonces el comportamiento de la función está definido según la implementación del compilador.
ungetc

puts
Imprime una de cadena de caracteres.

Las constantes miembro son:

Nombre
Descripción
EOF
Entero negativo (int) usado para indicar "fin de fichero".
BUFSIZ
Entero que indica el tamaño del buffer utilizado por la función setbuf().
FILENAME_MAX
Tamaño máximo de la cadena de caracteres que contienen el nombre de un fichero para ser abierto
FOPEN_MAX
Número máximo de ficheros que pueden estar abiertos simultáneamente.
_IOFBF
Abreviatura de input/output fully buffered (buffer entrada/salida totalmente lleno); es un entero que se puede pasar como parámetro de la funciónsetvbuf() para requerir bloqueo del buffer en la entrada y salida del stream abierto.
_IOLBF
Abreviatura de input/output line buffered (...??); es un entero que se puede pasar como parametro a la función setvbuf() para requerir line buffered (??)en la entrada y salida del stream abierto.
_IONBF
Abreviatura de "input/output not buffered" (entrada/salida sin buffer); es un entero que se puede pasar como parametro a la función setvbuf() para requerir que la entrada salida del stream abierto funcione sin buffer.
L_tmpnam
Tamaño de la cadena de caractres con la longitud suficiente para almacenar un nombre de fichero temporal generado por la función tmpnam().
NULL
Macro que representa la constante puntero nulo; representa un valor de puntero que no apunta a ninguna dirección válida de objeto alguno en memoria.
SEEK_CUR
Entero que se puede pasar como parámetro a la función fseek() para indicar posicionamiento relativo a la posición actual del fichero.
SEEK_END
Entero que se puede pasar como parámetro a la función fseek() para indicar posicionamiento relativo al final del fichero.
SEEK_SET
Entero que se puede pasar como parámetro a la función fseek() para indicar posicionamiento relativo al inicio del fichero.
TMP_MAX
El número máximo de nombres de ficheros únicos generables por la función tmpnam().

Las variables incluidas son:

Nombre
Descripción
stdin
Puntero a FILE que referencia la entrada estándar, normalmente el teclado.
stdout
Puntero a FILE que referencia la salida estándar, normalmente el monitor.
stderr
Puntero a FILE que referencia la salida de error estándar, normalmente el monitor.

Los tipos de datos son:

FILE – Contiene información sobre el fichero y el flujo de caracteres necesarios para realizar operaciones de lectura/escritura sobre él.
fpos_t – Tipo que permite identificar la posición de cada byte en un fichero.
size_t – Tipo entero sin signo, resultante de utilizar el operador sizeof.

¿Qué utilidades ves al uso de stdio.h?