]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo3.c
* Si se esta en "Ver registro" y se presiona "e" se abre la ventana para editar...
[z.facultad/75.06/emufs.git] / emufs / tipo3.c
index 0e657e926710630764002f12dd3f5422d4729a31..0a457f911e106cb8fd09d8961d021e476d0b1f71 100644 (file)
@@ -276,3 +276,29 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID)
        free(bloque);
        return 0;
 }
        free(bloque);
        return 0;
 }
+
+EMUFS_Estadisticas emufs_tipo3_leer_estadisticas(EMUFS *emu)
+{
+       FILE *f;
+       EMUFS_Estadisticas stats;
+       char name_f[255];
+
+       strcpy(name_f,emu->nombre);
+       strcat(name_f,".dat");
+       if ( (f = fopen(name_f,"r")) == NULL){
+                       PERR("No se pudo abrir el archivo");
+                       return stats;   
+       }
+       /* No hace falta el fseek ¿? */
+       fseek(f,0,SEEK_END);
+       stats.tam_archivo_bytes = ftell(f);
+       stats.cant_bloques = ( ftell(f) - sizeof(EMUFS_Tipo) - sizeof(EMUFS_BLOCK_SIZE) - sizeof(EMUFS_REG_SIZE) )/ emu->tam_bloque;
+       stats.tam_archivo = emufs_idx_get_count(emu);
+       stats.total_fs = emufs_fsc_get_total_fs(emu);
+       /*verificar el segentado*/
+       stats.info_control = stats.tam_archivo*sizeof(EMUFS_REG_ID) + sizeof(EMUFS_Tipo) + sizeof(EMUFS_BLOCK_SIZE) + sizeof(EMUFS_REG_SIZE);
+       stats.media_fs = stats.total_fs/stats.cant_bloques;
+       fclose(f);
+       return stats;
+       
+}