flush()

flush()

Retorna:

El número de archivos abiertos.

Descripción:

Vacia los buffers de escritura, es decir, hace que todos los datos escritos a un archivo de disco que estén aún en la caché de escritura se graben físicamente en su archivo correspondiente.

Esta operación no suele ser necesaria nunca, ya que la administración de la caché que realiza el sistema operativo es muy efectiva, y no van a perderse nunca datos por que no se escriban directamente al disco.

No obstante, esta función tiene otra utilidad, y es que devuelve el numero de archivos abiertos con fopen() dentro de un programa.

El sistema de archivos permite únicamente un máximo de archivos abiertos, que depende de la configuración del sistema operativo.

Deberán cerrarse con fclose() todos los archivos una vez se haya realizado con ellos la operación oportuna. Esta última función permite cerrar un sólo archivo, o todos los que estén abiertos.

Programa ejemplo:
PROGRAM ejemplo_flush;

GLOBAL
    midato1;
    midato2;
    mihandle;

BEGIN
    mihandle=fopen("help\help.dat","w");

    midato1=flush(); // Obtiene el número de archivos abiertos (1)

    fclose(mihandle);

    midato2=flush(); // Obtiene el número de archivos abiertos (0)

END


Este ejemplo obtiene en dos ocasiones el número de archivos abiertos con la función flush(). Tras aberse abierto el archivo help.dat la función determina que hay abierto uno y, una vez cerrado el mismo, se podrá comprobar como ya no hay ninguno.


Ver: fopen() - fclose()