/*tengo que buscar la cantidad de bloques que existen*/
/*me paro al principio salteando el encabezado del archivo*/
fseek(file, 0, SEEK_END); /* Me paro al final */
- /* FIXME FIXME FIXME FALTA TRADUCIR A EMUFS_XXXX */
- cant = (ftell(file)-(sizeof(int)*2+sizeof(char))) / emu->tam_bloque;
+ cant = (ftell(file)-(sizeof(EMUFS_TYPE)+sizeof(EMUFS_REG_SIZE)+sizeof(EMUFS_BLOCK_SIZE))) / emu->tam_bloque;
cant--; /* Resto uno porque el numero de bloque debe empezar en 0 */
fclose(file);
num_bloque = cant;
/* grabo el nuevo registro en el archivo de espacios libres */
- /* FIXME FIXME FIXME FALTA TRADUCIR A EMUFS_XXXX */
- if ( emufs_fsc_agregar(emu, num_bloque, emu->tam_bloque - emu->tam_reg - sizeof(int)) != 0 ) {
+ if ( emufs_fsc_agregar(emu, num_bloque, emu->tam_bloque - emu->tam_reg - sizeof(EMUFS_REG_ID)) != 0 ) {
free(bloque);
return -1;
}
return -1; /* se produjo un error */
}
/*actualizo el archivo de espacios libres*/
- /* FIXME FIXME FIXME FALTA TRADUCIR A EMUFS_XXXX */
- if ( emufs_fsc_actualizar(emu, num_bloque, fs - emu->tam_reg - sizeof(int)) != 0 ){
+ if ( emufs_fsc_actualizar(emu, num_bloque, fs - emu->tam_reg - sizeof(EMUFS_REG_ID)) != 0 ){
free(bloque);
return -1;
}
if ( (file = fopen(name_f,"r+"))==NULL ) return -1; /*ERROR*/
/* Salto el header del archivo */
- fseek(file, sizeof(char)+sizeof(int)*2, SEEK_SET);
+ fseek(file, sizeof(EMUFS_TYPE)+sizeof(EMUFS_REG_SIZE)+sizeof(EMUFS_BLOCK_SIZE), SEEK_SET);
fseek(file, num*emu->tam_bloque, SEEK_CUR);
fwrite(ptr, emu->tam_bloque, 1, file);
/** Graba el bloque apuntado por \param ptr en el archivo */
int emufs_tipo3_grabar_bloque(EMUFS *emu, void *ptr, EMUFS_BLOCK_ID num_bloque);
+int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
+
EMUFS_REG_ID emufs_tipo3_get_id(EMUFS *emu);
int emufs_tipo3_buscar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
-int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
-
#endif /* _EMUFS_TIPO3_H_ */
strcpy(i, "me argrego despues de borrar a un registro");
fp = emufs_crear("articulos", T3, atoi(argv[1]), 100);
-
+printf("pase0\n");
n1 = fp->grabar_registro(fp, a, 100);
+printf("pase1\n");
n2 = fp->grabar_registro(fp, c, 100);
+printf("pase2\n");
/*n3 = fp->grabar_registro(fp, d, 100);
n4 = fp->grabar_registro(fp, e, 100);
n5 = fp->grabar_registro(fp, f, 100);
/*fp->borrar_registro(fp, n4, 100);
fp->borrar_registro(fp, n2, 100);
fp->borrar_registro(fp, n6, 100);*/
+ printf("pase00\n");
+
fp->borrar_registro(fp, n1);
printf("borre el registro de id = %lu\n",n1);
b_ptr = fp->leer_registro(fp, n2, &err);
printf("Recuperado : %s\n", b_ptr);
-
+printf("pase5\n");
free(b_ptr);
ver_archivo_FS(fp);