From: Alan Kennedy Date: Sun, 18 Apr 2004 16:31:42 +0000 (+0000) Subject: Se agrego a la estructura de Estadisticas, el campo tam_datos_bytes, y se calcula... X-Git-Tag: svn_import_r684~366 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/7678c3e2cc80dc0a6e200bfa2c8bcb3acf8dd0a7?ds=inline Se agrego a la estructura de Estadisticas, el campo tam_datos_bytes, y se calcula y devuelve en la funcion de estadisticas del tipo2 --- diff --git a/emufs/emufs.h b/emufs/emufs.h index ac123ca..04b72f2 100644 --- a/emufs/emufs.h +++ b/emufs/emufs.h @@ -91,6 +91,7 @@ typedef unsigned long EMUFS_OFFSET; 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 */ diff --git a/emufs/tipo2.c b/emufs/tipo2.c index bbec0b3..0d3261c 100644 --- a/emufs/tipo2.c +++ b/emufs/tipo2.c @@ -257,6 +257,7 @@ EMUFS_Estadisticas emufs_tipo2_leer_estadisticas(EMUFS *efs) /* 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; @@ -304,6 +305,9 @@ EMUFS_Estadisticas emufs_tipo2_leer_estadisticas(EMUFS *efs) /* 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); } @@ -475,4 +479,3 @@ void* emufs_tipo2_leer_registro_raw(EMUFS *emu, EMUFS_REG_ID id, EMUFS_REG_SIZE PERR("IMPLEMENTAME CABRON"); return NULL; } - diff --git a/emufs/tipo2_main.c b/emufs/tipo2_main.c index f0694ad..cc3b204 100644 --- a/emufs/tipo2_main.c +++ b/emufs/tipo2_main.c @@ -38,7 +38,7 @@ 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]; @@ -93,9 +93,11 @@ int main(int argc, char *argv[]) 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); @@ -113,6 +115,7 @@ 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"); @@ -127,6 +130,7 @@ 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); emufs_destruir(efs);