BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 9 Librerías Estándar
Teoría: Entrada / Salida <stdio.h>

int ungetc(int c, FILE *stream);
La función ungetc coloca el carácter especificado por c( convertido a un unsigned char) de regreso en el flujo de entrada al cual señala stream. Los carácteres devueltos serán regresados en lecturas subsecuentes a dicho flujo en orden inverso a su entrada. Una llamada intermedia exitosa( con el flujo al cual apunta stream) a una función de posicionamiento de archivo (fseek, fsetpos o rewind) descartará todos los caracteres vueltos a colocar para el flujo. El almacenamiento externo correspondiente al flujo se mantiene sin modificación.
Un carácter de los regresados queda garantizado. Si una función ungetc es llamada demasiadas veces sobre el mismo flujo sin un operación intermedia de posicionamiento de lectura o de archivo sobre dicho flujo, la operación pudiera fallar. Si el valor de c se iguala al de la macro EOF, la operación fallará y el flujo de entrada queda sin modificar.
Una llamada exitosa a la función ungetc desactiva el indicador de fin de archivo correspondiente al flujo. El valor del indicador de posición de archivo para el flujo después de leer o descartar todos los caracteres introducidos y regresados será el mismo que antes que los caracteres fueran retornados. Para un flujo de texto, el valor de este indicador de posición de archivo después de una llamada a la función ungetc queda sin especificar en tanto todos los caracteres devueltos al flujo sean leídos o descartados. En el caso de un flujo binario, su indicador de posición de archivo queda determinado mediante una llamada exitosa ala función ungetc; si su valor antes de la llamada era cero, quedará después de la llamada indeterminado. La función ungetc devuelve el carácter devuelto al flujo después de la conversión o si no en caso de fallo de la operación EOF.

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
La función fread lee, al arreglo al cual señala ptr, hasta nmemb elementos cuyos tamaños están definidos por size, del flujo al cual señala stream. El indicador de posición de archivo para el flujo (si está definido) se avanza en el número de caracteres con éxito leídos. Si ocurre algún error , queda indeterminado el valor resultante del indicador de posición de archivo para el flujo. Si se lee un elemento en forma parcial, su valor tambié queda indeterminado.
La función fread devuelve el número de elementos leídos, mismos que pudieran ser menos de nmemb si se encuentra con un error de lectura o con el fin de archivo. Si size o nmemb es cero , fread devuelve cero y tanto el contenido del arreglo como el estado del flujo se conservan sin modificar.

size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
La función fwrite escribe, desde el arreglo al cual señala ptr hasta nmemb elementos cuyo tamaño está definido por size, al flujo al cual señala stream. El indicador de posición de archivo para el flujo ( si está definido) se avanza en el número de caracteres con éxito. Si ocurre un error, el valor resultante de la posición de archivo para el flujo queda indeterminado. La función fwrite devuelve el número de elementos escritos, mismo que sólo en el caso de que se encuentre un error de escritura será menor que nmemb.