if ( (file = fopen(name_f,"a+"))==NULL ) return -1; /*ERROR*/
/*tengo que buscar un ID valido para el nuevo registro*/
ID_aux = emufs_idx_get_new_id(emu, err);
-
/* El free esta al final de la funcion! */
bloque = (char*)malloc(emu->tam_bloque);
for (i=0; i<cant_bloques; i++) {
}
}
/* grabo el nuevo registro en el archivo de espacios libres */
+ if ( emu->tam_bloque > emu->tam_reg ) resto = emu->tam_reg;
if ( emufs_fsc_agregar(emu, num_bloque, emu->tam_bloque - resto - sizeof(EMUFS_REG_ID)) != 0 ) {
fclose(file);
free(bloque);
}
/*grabo el bloque en el archivo*/
+ if ( emu->tam_bloque < emu->tam_reg )
+ memset(bloque, 0, emu->tam_bloque);
if ( emufs_tipo3_grabar_bloque(emu, bloque, num_bloque) == -1 ){
free(bloque);
PERR("No se pudo grabar el bloque");
}
/*actualizo archivo .fsc*/
- fs = emufs_fsc_get_fs(emu, num_bloque);
- if ( emufs_fsc_actualizar(emu, num_bloque, fs + emu->tam_reg + sizeof(EMUFS_REG_ID)) != 0 ) return -1;
-
+ if ( emu->tam_bloque < emu->tam_reg ) {
+ if ( emufs_fsc_actualizar(emu, num_bloque, emu->tam_bloque) != 0 ) return -1;
+ } else {
+ fs = emufs_fsc_get_fs(emu, num_bloque);
+ if ( emufs_fsc_actualizar(emu, num_bloque, fs + emu->tam_reg + sizeof(EMUFS_REG_ID)) != 0 ) return -1;
+ }
/*actualizo archivo .did*/
if ( emufs_did_agregar(emu, ID) != 0 ) return -1;
n3 = fp->grabar_registro(fp, d, 100, &err);
n4 = fp->grabar_registro(fp, e, 100, &err);
n5 = fp->grabar_registro(fp, f, 100, &err);
- n6 = fp->grabar_registro(fp, g, 100, &err);
+ /*n6 = fp->grabar_registro(fp, g, 100, &err);*/
n7 = fp->grabar_registro(fp, h, 100, &err);
n8 = fp->grabar_registro(fp, i, 100, &err);
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, n4, ®_size, &err);
+ ver_archivo_FS(fp);
+ fp->borrar_registro(fp, n3);
+ fp->borrar_registro(fp, n4);
+ printf("pase3\n");
+ /*n6 = fp->grabar_registro(fp, g, 100, &err);*/
+ printf("pase4\n");
+ b_ptr = fp->leer_registro(fp, n7, ®_size, &err);
printf("Recuperado : %s\n", b_ptr);
-
free(b_ptr);
ver_archivo_FS(fp);