UNIDAD 6: REGISTROS Y ARCHIVOS PLANOS

TEMA LINUX GCC 1: INTRODUCCION

SE DICE QUE UN ARCHIVO ES DE ACCESO U ORGANIZACION DIRECTA CUANDO PARA ACCEDER A UN REGISTRO N CUALESQUIERA NO SE TIENE QUE PASAR POR LOS N-1 REGISTROS ANTERIIORES.

Como se observa de esta definición los archivos directos tienen una gran ventaja( son mucho mas rapidos) cuando se comparan con los archivos de acceso u organizacion secuencial estudiados en la unidad anterior.

Aunque lo anterior no quiere decir que son mejores que los secuenciales, es decir es el propio problema planteado quien exigira una solucion u otra, por ejemplo si se quiere construir un archivo para almacenar los datos de un guestbook, si se construye de manera directa seria muy rapido pero si lo construimos de manera secuencial, se podran almacenar datos con cantidades de información mas adecuados al problema.

Es decir un archivo de acceso directo tiene que tener sus registros o renglones de un tamaño fijo o predeterminado de antemano.

Un archivo de acceso directo permite posicionar el apuntador de interno de registros, a cualquier registro determinado sin necesidad de pasar por todos los registros anteriores, usando las siguientes funciones.

1) int fseek(apuntador,long offset,origen);

Esta función posiciona el apuntador de registro en el byte indicado. Regresa 0 si se pudo posicionar.

apuntador=fopen(“a:archivo.dat”,”r+”);

fseek(apuntador,(long)(clave)*(sizeof(registro)),0);

0 —> SEEK_SET principio del archivo.

1 —> SEEK_CUR posicion actual.

2 —> SEEK_END fin del archivo.

2) long ftell(apuntador);

Regresa un valor long indicando la posicion actual del cursor interno de registros de archivo.

3) int rewind(apuntador);

Regresa el apuntador al principio del archivo.


Ejemplo para hacer modificaciones.

fseek(apuntador,(long)(clave)*(sizeof(registro)),0);

fread(&registro,sizeof(registro),1,apuntador);

hacer las modificaciones.

rewind(apuntador);

fseek(apuntador,(long)(clave)*(sizeof(registro)),0);

fwrite(&registro,sizeof(registro),1,apuntador);


Politica de Privacidad