|
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.
|
|