ARCHIVOS EN C

Para poder utilizar un archivo para lectura, escritura o ambas operaciones, primero debemos crear un flujo asociado a dicho archivo. A este proceso se le llama abrir el archivo.

Para abrir un archivo se utiliza la función estándar fopen()

La función fopen() regresa un apuntador a tipo FILE, por lo cual es conveniente que para cada archivo que se quiera abrir se debe declarar un apuntador a tipo FILE. Por ejemplo el enunciado:

FILE *apuntador;

Declara un apuntador a tipo FILE llamado apuntador.

La función fopen() tiene la siguiente forma:

fopen (archivo, modo);

Donde el argumento modo especifica si el archivo es de texto o binario, y si es para lectura, escritura o ambas operaciones. Algunos valores posibles para modo se dan en la siguiente tabla.

"r"Abre un archivo de texto que existía previamente para lectura.
"w"Crea un archivo de texto para escritura si no existe el archivo con el nombre especificado, o trunca (elimina el anterior y crea uno nuevo) un archivo anterior
"a"Crea un archivo de texto si no existe previamente o abre un archivo de texto que ya existía para añadir datos al final del archivo. Al abrir el archivo el puntero del archivo queda posicionado al final del archivo.
"rb"Funciona igual que "r" pero abre o crea el archivo en modo binario.
"wb"Análogo a "w" pero escribe en un archivo binario.
"ab"Análogo a "a" pero añade datos a un archivo binario.
"r+"Abre un archivo de texto ya existente para lectura y escritura.
"w+"Abre un archivo de texto ya existente o crea uno nuevo para lectura y escritura.
"a+"Abre un archivo de texto ya existente o crea un archivo nuevo para lectura y escritura. El indicador de posición del archivo queda posicionado al final del archivo anterior.
"r+b" o "rb+"Funciona igual que "r+" pero lee y escribe en un archivo binario.
"w+b" o "wb+"Análogo a "w+" pero en modo binario.
"a+b" o "ab+"Análogo a "a+" pero en modo binario.

El argumento archivo puede ser una cadena literal encerrada entre comillas dobles, donde se especifica el nombre del archivo a ser abierto, o puede ser un apuntador a una cadena guardada en cualquier lugar de memoria.

Los nombres de los archivos son los mismos que se usan con el sistema operativo y deben seguir las mismas reglas. Un nombre de archivo en un programa de C también puede contener información sobre la unidad y el directorio.


fopen() regresa NULL cuando sucede un error.


Salida formateada a archivos


La salida formateada a archivos se logra con la función de biblioteca fprintf().

La función fprintf() tiene la siguiente forma:

fprintf (apuntador, cadena de control de formato, otros argumentos);

El primer argumento es un apuntador a tipo FILE. Para escribir datos a un archivo de disco en particular, se pasa el apuntador que fue regresado cuando se abrió el archivo con fopen(). La cadena de control de formato y otros argumentos siguen exactamente las mismas reglas que para printf().