From 43ac2246501ebd3fb1f0886a77959f68fa66cfd4 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 5 Apr 2004 23:32:17 +0000 Subject: [PATCH] * 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. --- tipo3/param_cte.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- 2.43.0