#include <stdio.h>
#include <string.h>
+#include <math.h>
#include "emufs.h"
#include "fsc.h"
+#include "tipo2.h"
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);
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);*/
+
+ /* Prueba de recompactacion */
+ efs->borrar_registro(efs, n2);
+ efs->borrar_registro(efs, n7);
efs->borrar_registro(efs, n4);
-
- n8 = efs->grabar_registro(efs, d, 8, &err);
- printf("tipo2_main.c >> Id recuperado: %lu\n",n8);
-
+
/* 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);
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);
+ /* 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);
+
emufs_destruir(efs);
return 0;