C/Visual C - fflush() y fluahall()

 
Vista:

fflush() y fluahall()

Publicado por void_Pointer (180 intervenciones) el 24/08/2003 17:30:45
Hola a todos , queriqa saver que es lo que hace realmente los flush?
a ve sie ntendi, cada fichero tiene una memoria intermedia? o el mismo C tiene una memoria standar para todos? y el flush las escribe es disco, por que si no se llenan los buffers no se escribe?
buenbo espero me pueddan contar como trabaja

saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 11
Ha aumentado su posición en 5 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

RE:fflush() y fluahall()

Publicado por aaaa (318 intervenciones) el 25/08/2003 00:54:52
¡Hola! Según lo que me dijeron el fflush limpiaba el buffer de la memoria y el fluahall nunca lo usamos, no lo conozco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fflush() y fluahall()

Publicado por chuidiang (677 intervenciones) el 25/08/2003 12:30:41
Cuando escribes o lees de un fichero, el sistema opertivo (o el compilador) no lo suele escribir directamente en el disco, sino que lo guarda en memoria y se apunta que tiene que escribirlo más adelante.
fflush() fuerza al sistema a escribirlo realmente en disco.

¿Por qué esta memoria?. Si tu escribes letras (o bytes) en un fichero de una en una
while (...)
fprintf (f, "%c", unaLetra);

y cada letra se escribe en disco directamente, tendrías el disco trabajando a tope de una forma poco eficiente (el acceso a disco es "lento" y estás haciendo muchos accesos con poca información en cada uno de ellos). El programa sería más lento.
Por ello, el sistema operativo, compilador, lo que hace es guardarse todas esas letras hasta que tiene un grupo grande de ellas (¿512 bytes?)y entonces las escribe. Tu puedes forzar esa escritura con un fflush() o al cerrar el fichero fclose().

Cuando lees, si pides poca información, el sistema lee un bloque mas grande y lo guarda en ese buffer de memoria, de forma que si sigues leyendo, el ya no tiene que acceder al disco, porque ya lo tiene leido.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar