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(®, sizeof(EMUFS_FSC), 1, f_fsc) != 1) continue;
+ total += reg.n_freespace;
+ }
+ fclose(f_fsc);
+ return total;
+}
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 */
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;
+}
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 */
#include <stdio.h>
#include <string.h>
#include "emufs.h"
+#include "idx.h"
+#include "fsc.h"
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, ®_size, &err);
- b_ptr = fp->leer_registro(fp, n8, ®_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;