Namespaces
Variants

fclose

From cppreference.net
< c ‎ | io
Definido en el encabezado <stdio.h>
int fclose ( FILE * stream ) ;

Cierra el flujo de archivo dado. Cualquier dato almacenado en búfer no escrito se vacía al sistema operativo. Cualquier dato almacenado en búfer no leído se descarta.

Tanto si la operación tiene éxito como si no, el flujo ya no está asociado a un archivo, y el búfer asignado por setbuf o setvbuf , si existe, también se desasocia y desasigna si se utilizó asignación automática.

El comportamiento es indefinido si el valor del puntero stream se utiliza después de que fclose retorne.

Contenidos

Parámetros

stream - el flujo de archivo a cerrar

Valor de retorno

0 en caso de éxito, EOF en caso contrario

Ejemplo

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
    int is_ok = EXIT_FAILURE;
    FILE* fp = fopen(fname, "w+");
    if (!fp)
    {
        perror("File opening failed");
        return is_ok;
    }
    fputs("Hello, world!\n", fp);
    rewind(fp);
    int c; // note: int, not char, required to handle EOF
    while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
        putchar(c);
    if (ferror(fp))
        puts("I/O error when reading");
    else if (feof(fp))
    {
        puts("End of file is reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    fclose(fp);
    remove(fname);
    return is_ok;
}

Salida posible:

Hello, world!
End of file is reached successfully

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.21.5.1 La función fclose (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.21.5.1 La función fclose (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.21.5.1 La función fclose (p: 304)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.19.5.1 La función fclose (p: 270)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.9.5.1 La función fclose

Véase también

abre un archivo
(función)
abre un flujo existente con un nombre diferente
(función)