]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
dos funciones estadisticas
authorNicolás Dimov <ndimov@gmail.com>
Sun, 11 Apr 2004 18:19:18 +0000 (18:19 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Sun, 11 Apr 2004 18:19:18 +0000 (18:19 +0000)
emufs/fsc.c
emufs/fsc.h
emufs/idx.c
emufs/idx.h
emufs/tipo3_main.c

index 43dc627552949b1cb33341c812d1c82a56473947..0b9449bd1a12d2f0fa0201507f251191d8bc4d48 100644 (file)
@@ -325,3 +325,23 @@ EMUFS_FREE emufs_fsc_get_fs(EMUFS *emu, EMUFS_BLOCK_ID n_marker)
        fclose(f_fsc);
        return reg.n_freespace;
 }
+
+EMUFS_FREE emufs_fsc_get_total_fs(EMUFS *emu)
+{
+       FILE *f_fsc;
+       EMUFS_FSC reg;
+       char name_f_fsc[255];
+       EMUFS_FREE total;
+       
+       strcpy(name_f_fsc,emu->nombre);
+       strcat(name_f_fsc, EMUFS_FSC_EXT);
+
+       if ( (f_fsc = fopen(name_f_fsc,"r"))==NULL ) return -1;
+       total = 0;
+       while ( !feof(f_fsc) ){
+               if ( fread(&reg, sizeof(EMUFS_FSC), 1, f_fsc) != 1) continue;
+               total += reg.n_freespace;
+       }
+       fclose(f_fsc);
+       return total;
+}
index 657d0f1e3788eec7d6d4cf44ec0d0fe416487332..230876cb87c0c0bfeef092fe56d0001b70f17aab 100644 (file)
@@ -55,5 +55,7 @@ int emufs_fsc_actualizar_gap(EMUFS *, EMUFS_OFFSET, EMUFS_FREE);
 int emufs_fsc_actualizar(EMUFS *, EMUFS_BLOCK_ID, EMUFS_FREE);
 EMUFS_BLOCK_ID emufs_fsc_buscar_lugar(EMUFS *, EMUFS_FREE, EMUFS_FREE *);
 EMUFS_FREE emufs_fsc_get_fs(EMUFS *, EMUFS_BLOCK_ID);
+/*Devuelve el total de espacio libre que queda en el .dat*/
+EMUFS_FREE emufs_fsc_get_total_fs(EMUFS *);
 
 #endif /* _EMUFS_FSC_H */
index f5b15620e25db386fb62de583fdf973b1bdd26b6..a46c46b77f07bfe150662cddb4607912ae7c0943 100644 (file)
@@ -262,3 +262,17 @@ EMUFS_REG_ID emufs_idx_get_id_at(EMUFS *emu, long pos)
        return id.id_reg;
 }
 
+int emufs_idx_get_cant_reg(EMUFS* emu)
+{
+       FILE *fp;
+       char name_f_idx[255];
+       long cant;      
+       strcpy(name_f_idx,emu->nombre);
+       strcat(name_f_idx, EMUFS_IDX_EXT);
+
+       if ( (fp = fopen(name_f_idx, "r")) == NULL ) return -1;/*EMUFS_NOT_FOUND*/;
+       fseek(fp, 0, SEEK_END);
+       cant = ftell(fp)/sizeof(EMUFS_IDX);     
+       fclose(fp);
+       return cant;
+}
index 605bf1b01d7b8a37e29db66ba8e2f237ca36b4c0..4dfeda20ed956550a6cdaaca34419355913ae40e 100644 (file)
@@ -67,4 +67,7 @@ EMUFS_REG_ID emufs_idx_get_id_at(EMUFS *, long pos);
 
 EMUFS_REG_ID emufs_idx_get_new_id(EMUFS*, int*);
 
+/*me informa la cantidad de registros existentes en .dat*/
+int emufs_idx_get_cant_reg(EMUFS*);
+
 #endif /* _EMUFS_IDX_H */
index ab0e060f338bb2d88f1116e0a353e244f60c74d3..8aaf748ee93d2f20b2ecd8acf3f7e446437d6d3e 100644 (file)
@@ -35,6 +35,8 @@
 #include <stdio.h>
 #include <string.h>
 #include "emufs.h"
+#include "idx.h"
+#include "fsc.h"
 
 
 int main(int argc, char *argv[])
@@ -91,18 +93,21 @@ int main(int argc, char *argv[])
        if ( fp->borrar_registro(fp, n3) == -1) printf("la cague %d\n",n3);
        if ( fp->borrar_registro(fp, n4) == -1) printf("la cague %d\n",n4);
        if ( fp->borrar_registro(fp, n5) == -1) printf("la cague %d\n",n5);
-       if ( fp->borrar_registro(fp, n6) == -1) printf("la cague %d\n",n6);     
+/*     if ( fp->borrar_registro(fp, n6) == -1) printf("la cague %d\n",n6);     
        if ( fp->borrar_registro(fp, n7) == -1) printf("la cague %d\n",n7);
        if ( fp->borrar_registro(fp, n8) == -1) printf("la cague %d\n",n8);     
+       */
+       b_ptr = fp->leer_registro(fp, n7, &reg_size, &err);
        
-       b_ptr = fp->leer_registro(fp, n8, &reg_size, &err);
-
        printf("Recuperado : %s\n", b_ptr);
 
        free(b_ptr);
 
        ver_archivo_FS(fp);
        
+       printf("la cantidad de registros eeeeesssss: %d\n", emufs_idx_get_cant_reg(fp));
+       printf("la cantidad de espacio libre es: %d\n", emufs_fsc_get_total_fs(fp));
+       
        emufs_destruir(fp);
        
        return 0;