fclose
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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
|
(C11)
|
abre un archivo
(función) |
|
(C11)
|
abre un flujo existente con un nombre diferente
(función) |
|
Documentación de C++
para
fclose
|
|