estaba faltando restar sizeof(int), entonces cuando se utilizaba ese valor para guardar
registros se creaban solapamientos.
reg.block = cant; /*no incremento cant, porque grabe el nuevo bloque antes y no lo conte!!*/
/* GAZER */
/*printf("FS = %d\n", fs);*/
reg.block = cant; /*no incremento cant, porque grabe el nuevo bloque antes y no lo conte!!*/
/* GAZER */
/*printf("FS = %d\n", fs);*/
- reg.free_space = emu->tam_bloque - tam;
+ reg.free_space = emu->tam_bloque - tam-sizeof(int);
/*lo guardo en el archivo al final "a+"*/
if ( (f_block_free = fopen(name_f_free,"a+"))==NULL ) return -1; /*ERROR*/
fwrite(®,sizeof(BLOCK_FREE_T),1,f_block_free);
/*lo guardo en el archivo al final "a+"*/
if ( (f_block_free = fopen(name_f_free,"a+"))==NULL ) return -1; /*ERROR*/
fwrite(®,sizeof(BLOCK_FREE_T),1,f_block_free);
while ( !feof(f_block_free) ){
fread(®,sizeof(BLOCK_FREE_T),1,f_block_free);
if ( reg.block == num_bloque ){
while ( !feof(f_block_free) ){
fread(®,sizeof(BLOCK_FREE_T),1,f_block_free);
if ( reg.block == num_bloque ){
+ reg.free_space -= tam+sizeof(int);
fseek(f_block_free,-sizeof(BLOCK_FREE_T),SEEK_CUR);
fwrite(®,sizeof(BLOCK_FREE_T),1,f_block_free);
break;
fseek(f_block_free,-sizeof(BLOCK_FREE_T),SEEK_CUR);
fwrite(®,sizeof(BLOCK_FREE_T),1,f_block_free);
break;