X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/1507459453b2f0c66efc1940350b2d1471f8cb5f..baf79a90e2addd39a342fcb910bbfdb6ee6623cf:/emufs/tipo2_main.c diff --git a/emufs/tipo2_main.c b/emufs/tipo2_main.c index 9778593..9fe6dbe 100644 --- a/emufs/tipo2_main.c +++ b/emufs/tipo2_main.c @@ -30,13 +30,15 @@ #include #include +#include #include "emufs.h" #include "fsc.h" +#include "tipo2.h" int main(int argc, char *argv[]) { EMUFS *efs; - EMUFS_REG_ID n0, n1, n2, n3, n4, n5, n6, n7, n8; + EMUFS_REG_ID n0, n1, n2, n3, n4, n5, n6, n7, n8, n9; EMUFS_REG_SIZE reg_size; char *registro; char a[11]; @@ -49,7 +51,7 @@ int main(int argc, char *argv[]) char h[63]; char i[43]; int err = 0; - EMUFS_FREE totalfsc = 0; + EMUFS_Estadisticas stats; strcpy(a, "1234567890"); strcpy(b, "REGISTRO NUMERO 2. ESTE REGISTRO ES MUCHO MAS LARGO QUE EL UNO"); @@ -74,9 +76,10 @@ int main(int argc, char *argv[]) n5 = efs->grabar_registro(efs, f, 9, &err); n6 = efs->grabar_registro(efs, g, 41, &err); n7 = efs->grabar_registro(efs, h, 63, &err); + n8 = efs->grabar_registro(efs, d, 8, &err); /* Borramos un registro del medio */ - printf("tipo2_main.c >> Borrando registro: %lu\n",n5); + /*printf("tipo2_main.c >> Borrando registro: %lu\n",n5); efs->borrar_registro(efs, n5); printf("tipo2_main.c >> Borrando registro: %lu\n",n1); efs->borrar_registro(efs, n1); @@ -87,19 +90,47 @@ int main(int argc, char *argv[]) printf("tipo2_main.c >> Borrando registro: %lu\n",n7); efs->borrar_registro(efs, n7); printf("tipo2_main.c >> Borrando registro: %lu\n",n4); - efs->borrar_registro(efs, n4); - - n8 = efs->grabar_registro(efs, d, 8, &err); - printf("tipo2_main.c >> Id recuperado: %lu\n",n8); + efs->borrar_registro(efs, n4);*/ - totalfsc = emufs_fsc_get_total_fs(efs); - printf("tipo2_main.c >> Total de espacio libre en el .dat: %lu\n",totalfsc); + /* Prueba de recompactacion */ + efs->borrar_registro(efs, n7); + efs->borrar_registro(efs, n4); + efs->borrar_registro(efs, n2); - registro = efs->leer_registro(efs,n2,®_size,&err); + n9 = efs->grabar_registro(efs, d, 8, &err); + + /* Levanto un registro */ + registro = efs->leer_registro(efs,n1,®_size,&err); if (err == 0) { printf("tipo2_main.c >>Registro: %lu Size: %lu Content: %s\n\n",n2,reg_size,registro); - printf("Total de espacio libre en el .dat: %lu\n",totalfsc); } + if (registro) free(registro); + + /* Obtengo stats */ + stats = efs->leer_estadisticas(efs); + printf("Size del Archivo de datos: %lu\n",stats.tam_archivo); + printf("Cantidad de Registros en el Archivo de datos: %lu\n",stats.cant_registros); + printf("Total de espacio libre en el .dat: %lu\n",stats.total_fs); + printf("Minimo espacio libre en bloque o gap: %lu\n",stats.min_fs); + printf("Maximo espacio libre en bloque o gap: %lu\n",stats.max_fs); + printf("Media de espacio libre en bloque o gap: %lu\n",stats.media_fs); + printf("Cantidad en bytes de informacion de control: %lu\n",stats.tam_info_control_dat+stats.tam_archivos_aux); + printf("Cantidad de bytes en datos: %lu\n",stats.tam_archivo-stats.tam_info_control_dat); + + /* Recompacto */ + printf("Recompactando...\n"); + efs->compactar(efs); + + /* Obtengo stats nevas */ + stats = efs->leer_estadisticas(efs); + printf("Size del Archivo de datos: %lu\n",stats.tam_archivo); + printf("Cantidad de Registros en el Archivo de datos: %lu\n",stats.cant_registros); + printf("Total de espacio libre en el .dat: %lu\n",stats.total_fs); + printf("Minimo espacio libre en bloque o gap: %lu\n",stats.min_fs); + printf("Maximo espacio libre en bloque o gap: %lu\n",stats.max_fs); + printf("Media de espacio libre en bloque o gap: %lu\n",stats.media_fs); + printf("Cantidad en bytes de informacion de control: %lu\n",stats.tam_info_control_dat+stats.tam_archivos_aux); + printf("Cantidad de bytes en datos: %lu\n",stats.tam_archivo-stats.tam_info_control_dat-stats.total_fs); emufs_destruir(efs);