Función de la biblioteca C -fflush()

Biblioteca estándar de C - <stdio.h>

Descripción

Función de la biblioteca Cint fflush(FILE *stream)Se utiliza para vaciar el búfer de salida.

fflush() es una función de la biblioteca estándar de C que escribe inmediatamente los datos del búfer en el archivo o dispositivo asociado con el flujo.

Para flujos de entrada, su comportamiento no está definido, por lo que se debe evitar llamar a esta función en un flujo de entrada.

Declaración

A continuación se muestra la declaración de la función fflush().

int fflush(FILE *stream)

Parámetros

  • stream-- Un puntero de tipo FILE que representa el flujo de destino cuyo búfer se debe vaciar. FILE es una estructura que representa un flujo de archivo abierto.

    • SistreamParaNULLentonces se vaciarán los búferes de todos los flujos de salida.
    • Sistreames un puntero de archivo, entonces se vaciará el búfer de salida de ese flujo de archivo.

Valor de retorno

  • Si el búfer se vacía correctamente,fflush()devuelve 0.

  • Si ocurre un error, devuelveEOF, y se establece el indicador de error (ferror)。

Ejemplo

El siguiente ejemplo demuestra el uso de la función fflush().

Ejemplo

#include <stdio.h> int main() { FILE *fp; char *filename = "example.txt"; char *data = "Hello, World!"; // Abrir el archivo para escritura fp = fopen(filename, "w"); if (fp == NULL) { printf("No se puede abrir el archivo %s\n", filename); return 1; } // Escribir datos en el archivo fprintf(fp, "%s", data); // Vaciar el búfer para asegurar que los datos se escriban en el archivo if (fflush(fp) == 0) { printf("Datos escritos correctamente en el archivo.\n"); } else { printf("Se produjo un error al vaciar el búfer.\n"); } // Cerrar el archivo fclose(fp); return 0; }

Explicación del código:

  • Abrir archivo: Usarfopen()abrir un archivo llamadoexample.txtpara escritura.

  • Escribir datos: Usarfprintf()para escribir la cadena"Hello, World!"en el archivo.

  • Vaciar el búfer: llamar afflush(fp)para asegurar que los datos se escriban inmediatamente en el archivo, en lugar de permanecer en el búfer.

  • Comprobar el valor de retorno: Sifflush()devuelve 0, significa que el búfer se vació correctamente; de lo contrario, significa que se produjo un error.

  • Cerrar el archivo: Usarfclose()para cerrar el archivo.

Los datos se escribieron correctamente en el archivo.

El programa abre el archivo example.txt y escribe la cadena "Hello, World!".

fflush(fp) vacía el búfer correctamente, devuelve 0, por lo tanto imprime "Datos escritos correctamente en el archivo".

El contenido del archivo example.txt será:

Hello, World!

Biblioteca estándar de C - <stdio.h>

Otras extensiones