From: Ricardo Markiewicz Date: Mon, 5 Apr 2004 23:32:17 +0000 (+0000) Subject: * BUGFIX : ahora el archivo anda bien. El problema era que en el calculo de espacio... X-Git-Tag: svn_import_r684~624 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/43ac2246501ebd3fb1f0886a77959f68fa66cfd4?ds=sidebyside * BUGFIX : ahora el archivo anda bien. El problema era que en el calculo de espacio libre estaba faltando restar sizeof(int), entonces cuando se utilizaba ese valor para guardar registros se creaban solapamientos. --- diff --git a/tipo3/param_cte.c b/tipo3/param_cte.c index 39919ba..efce5a7 100644 --- a/tipo3/param_cte.c +++ b/tipo3/param_cte.c @@ -174,7 +174,7 @@ int grabar_registro(EMUFS *emu, void *ptr, unsigned long tam) 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); @@ -203,7 +203,7 @@ int grabar_registro(EMUFS *emu, void *ptr, unsigned long tam) while ( !feof(f_block_free) ){ fread(®,sizeof(BLOCK_FREE_T),1,f_block_free); if ( reg.block == num_bloque ){ - reg.free_space -= tam; + 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;