typedef struct _emufs_est_t {
unsigned long tam_archivo; /**< Cantidad de Registros en el archivo */
unsigned long tam_archivo_bytes;/**< Size del archivo en bytes */
+ unsigned long tam_datos_bytes;/**< Cantidad de bytes en datos */
unsigned long info_control;/**< Cantidad de bytes en info de control */
unsigned long media_fs;/**< Media del espacio libre en el archivo de datos */
unsigned long total_fs;/**< Cantidad total de espacio libre en el archivo de datos */
/* Inicializo las stats por si hay error somewhere */
stats.tam_archivo = 0;
stats.tam_archivo_bytes = 0;
+ stats.tam_datos_bytes = 0;
stats.info_control = 0;
stats.media_fs = 0;
stats.total_fs = 0;
/* Cantidad de Bytes en info de control */
stats.info_control = idx_size + fsc_size + sizeof(EMUFS_REG_ID)*stats.tam_archivo + sizeof(EMUFS_REG_SIZE)*stats.tam_archivo + sizeof(EMUFS_Tipo);
+ /* Cantida de Bytes en Datos */
+ stats.tam_datos_bytes = stats.tam_archivo_bytes - sizeof(EMUFS_Tipo) - (sizeof(EMUFS_REG_ID) + sizeof(EMUFS_REG_SIZE)) * stats.tam_archivo;
+
return(stats);
}
PERR("IMPLEMENTAME CABRON");
return NULL;
}
-
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];
efs->borrar_registro(efs, n4);*/
/* Prueba de recompactacion */
- efs->borrar_registro(efs, n2);
- efs->borrar_registro(efs, n7);
- efs->borrar_registro(efs, n4);
+ 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,n1,®_size,&err);
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");
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);