X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/f2297e8837d4f9c3a98f308cc02ed76df58c6cf1..71ee5a3bb6632a2e8b5a6f104f1e1d93e2df9871:/emufs/tipo2_main.c diff --git a/emufs/tipo2_main.c b/emufs/tipo2_main.c index b830069..cc3b204 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]; @@ -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,16 +90,21 @@ 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);*/ + + /* Prueba de recompactacion */ + efs->borrar_registro(efs, n7); + efs->borrar_registro(efs, n4); + efs->borrar_registro(efs, n2); + + n9 = efs->grabar_registro(efs, d, 8, &err); + /* Levanto un registro */ - registro = efs->leer_registro(efs,n2,®_size,&err); + 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); } + if (registro) free(registro); /* Obtengo stats */ stats = efs->leer_estadisticas(efs); @@ -107,6 +115,22 @@ int main(int argc, char *argv[]) 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.info_control); + printf("Cantidad de bytes en datos: %lu\n",stats.tam_datos_bytes); + + /* 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_bytes); + printf("Cantidad de Registros en el Archivo de datos: %lu\n",stats.tam_archivo); + 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.info_control); + printf("Cantidad de bytes en datos: %lu\n",stats.tam_datos_bytes); emufs_destruir(efs);