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