El manejo de ficheros en C se realiza mediante una estructura denominada FILE. Esta estructura está definida en el fichero stdio.h. Más concretamente, los ficheros se manejan con punteros a ese tipo de estructuras:
FILE *nombre;
Donde nombre es el identificador con el que haremos referencia al fichero en las distintas funciones que usemos para operar con él. Cada vez que operamos sobre un fichero se modifica su estado, con lo que las funciones que lo manipulan siempre modifican la variable (por eso es un puntero).
Lo primero que hay que hacer para operar con un fichero es "abrirle" mediante la función fopen(), cuya sintaxis es:
fopen (nombre_fichero, modo)
Donde nombre_fichero es un puntero a una cadena de caracteres cuyo contenido es el nombre del fichero (debe incluir la ruta). modo es un puntero a una cadena de caracteres que especifica el tipo de operación que queremos realizar sobre el fichero. La forma de especificar ésta es:
"r", "w", "a". Se va a realizar una operación de: lectura posicionando el flujo al principio del fichero, escritura posicionando el flujo al principio del fichero, escritura posicionando el flujo al final del fichero, en modo ASCII.
"r+", "w+", "a+". Se va a realizar una operación de: lectura y escritura posicionando el flujo al principio del fichero, escritura posicionando el flujo al principio del fichero, lectura o escritura posicionando el flujo al final del fichero y lectura, en modo ASCII.
Si se añade al final de cualquiera de las opciones anteriores el caracter b la operación del lectura y escritura se realizarán en modo binario.
La función fopen() devuelve un puntero a una estructura FILE si el fichero se ha abierto correctamente o el valor NULL si ha habido error. Es importante comprobar esta posibilidad en el programa antes de continuar.
Para cerrar un fichero que ya no se vaya a usar se utiliza la función flose(nombre). Con nombre el nombre del puntero a FILE con que hayamos identificado al fichero que queremos cerrar.