Namespaces
Variants

std:: fclose

From cppreference.net
< cpp ‎ | io ‎ | c
Definido en el encabezado <cstdio>
int fclose ( std:: FILE * stream ) ;

Cierra el flujo de archivo dado y escribe cualquier dato no escrito del stream del búfer al dispositivo de salida asociado. 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 std::setbuf o std::setvbuf , si existe, también se desasocia y desasigna si se utilizó asignación automática.

Si se escriben datos a un dispositivo de salida, el retorno desde std::fclose establece un punto de observación .

(since C++26)

El comportamiento es indefinido si el valor del puntero stream se utiliza después de que std::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 <cstdio>
#include <cstdlib>
int main()
{
    int is_ok = EXIT_FAILURE;
    FILE* fp = std::fopen("/tmp/test.txt", "w+");
    if (!fp)
    {
        std::perror("File opening failed");
        return is_ok;
    }
    int c; // Nota: int, no char, necesario para manejar EOF
    while ((c = std::fgetc(fp)) != EOF) // Bucle estándar de lectura de archivos E/S de C
        std::putchar(c);
    if (std::ferror(fp))
        std::puts("I/O error when reading");
    else if (std::feof(fp))
    {
        std::puts("End of file reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    std::fclose(fp);
    return is_ok;
}

Salida:

End of file reached successfully

Véase también

abre un archivo
(función)
abre un flujo existente con un nombre diferente
(función)
vacía el búfer del área de escritura y cierra el archivo asociado
(función miembro pública de std::basic_filebuf<CharT,Traits> )
Documentación C para fclose