ARCHIVOS


Archivos



¿QUE ES EL ANEJO DE ARCHIVO?

una de las principales funciones del sistema operativo (manejo de archivos) es la administración de almacenamiento de información, por lo cual es necesario contar con un sistema de archivos.





Es la forma de tener una organización ya sea de forma ascendiente o descendiente eso quiere decir que debe de tener una estructura sencilla y organizada de menos a mas.



Apuntador (puntero) FILE:

Los archivos se ubican en dispositivos externos como cintas, cartuchos, discos, discos compactos, etc., y tienen un nombre y unas características. En el programa el archivo tiene un nombre interno que es un puntero a una estructura predefinida (apuntador a archivo). Esta estructura contiene información sobre el archivo, tal como la dirección del buffer que utiliza, el modo de apertura del archivo, el último carácter leído del buffer y otros detalles que generalmente el usuario no necesita saber. El identificador del tipo de la estructura es FILE y está declarada en el archivo de cabecera stdio.h.



Ejemplo: FILE* pf;



Apertura de un archivo:

Para procesar un archivo en C (y en todos los lenguajes de programación) la primera operación que hay que realizar es abrir el archivo. La apertura del archivo supone conectar el archivo externo con el programa, e indicar como va ser tratado el archivo: binario, de caracteres, etc. El programa accede a los archivos a través de un puntero a la estructura FILE, la función de apertura devuelve dicho puntero. La función para abrir un archivo es fopen( ) , el formato de llamada es:

fopen (nombre_archivo, modo);



Donde

nombre: Contiene el identificador externo del archivo.

modo: Contiene el modo en que se va a tratar el archivo.



Ejemplo:



FILE* pf;

pf =  fopen (nombre_archivo, modo);



Modos de apertura de un archivo:

Al abrir el archivo, fopen( ) espera como segundo argumento el modo de tratar el archivo. Fundamentalmente se establece si el archivo es de lectura, escritura o añadido, y si es de texto o binario. Para no depender del entorno es mejor indicar si es de texto o binario. Se utiliza la letra b para modo binario como ultimo carácter de la cadena ”modo”. Algunos compiladores admiten la letra t para indicar archivo texto. Por consiguiente, los modos de abrir un archivo de texto son:



“rt”, “wt”, “at”, “r+t”, “w+t”, “a+t”.



 Y los modos de abrir un archivo binario son:



“rb”, “wb”, “ab”, “r+b”, “w+b”, “a+b”.





“r+”: Abre para lectura

“w+”: Abre para crear nuevo archivo (si ya existen se pierden sus datos).

“a”: Abre para añadir al final.

“r+”: Abre archivo ya existente para modificar (leer/escribir).

“w+”: Crea un archivo para escribir / leer (si ya existe se pierden los datos).

“a+”: Abre el archivo para modificar (escribir/leer) al final. Si no existe es como w+.



NULL y EOF:

Las funciones de biblioteca de E/S de archivos, generalmente empiezan por f de file, tienen especificado que son de tipo entero de tal forma que si la operación falla devuelven EOF, también devuelven EOF para indicar que se ha leído el fin de archivo. Esta macro está definida en stdio.h.



Ejemplo:

int c:

while ((c=getchar( )) != EOF)

{

…..

}



 Cierre de archivos:

Los archivos en C trabajan con una memoria intermedia, buffer. La entrada y salida de datos se almacena en ese buffer, volcándose cuando está lleno. Al terminar la ejecución del programa podrá ocurrir que haya datos en el buffer; si no se volcasen en el archivo este quedaría sin las ultimas actualizaciones. Siempre que se termina de procesar un archivo y termine la ejecución del programa hay que cerrar los archivos abiertos para que, entre otras acciones, se vuelque el buffer.

La función fclose (puntero_file) cierra el archivo asociado al puntero_file y devuelve EOF si ha habido un error al cerrar. El prototipo de la función se encuentra en stdio.h y es:



int  fclose(FILE* pf);






No hay comentarios:

Publicar un comentario