Después de abrir un fichero y leerlo o escribir en él, hay que
desenlazarlo del flujo de datos al que fue asociado. Esto se hace con
la función fclose
, cuya sintaxis es la siguiente:
#include <stdio.h> int fclose(FILE *stream);
Si fclose
cierra bien el fichero, devuelve
0
. Si no, la función devuelve EOF
.
Normalmente sólo falla si se ha borrado el fichero antes de intentar
cerrarlo. Acuérdate siempre de cerrar el fichero. Si no lo haces, se
pueden perder los datos almacenados en él. Además, si no lo cierras,
otros programas pueden tener problemas si lo quieren abrir más tarde.
El siguiente programa abre y cierra un fichero de texto, comprobando los posibles errores que puedan surgir:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <stdio.h> enum {EXITO, FALLO}; int main(void) { FILE *ptr_fichero; char nombre_fichero[] = "resumen.txt"; int resultado = EXITO; if ( (ptr_fichero = fopen(nombre_fichero, "r") ) == NULL) { printf("No se ha podido abrir el fichero %s.\n", nombre_fichero); resultado = FALLO; } else { printf("Abierto fichero; listos para cerrarlo.\n"); if (fclose(ptr_fichero)!=0) { printf("No se ha podido cerrar el fichero %s.\n", nombre_fichero); resultado = FALLO; } } return resultado; } |