]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* BUGFIX : ahora el archivo anda bien. El problema era que en el calculo de espacio...
authorRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 5 Apr 2004 23:32:17 +0000 (23:32 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 5 Apr 2004 23:32:17 +0000 (23:32 +0000)
 estaba faltando restar sizeof(int), entonces cuando se utilizaba ese valor para guardar
 registros se creaban solapamientos.

tipo3/param_cte.c

index 39919ba1bd39d5ba6bceadc0eb108c3fd5fcbfc1..efce5a7b354a372a03db9d47fa4491d02ff12bf9 100644 (file)
@@ -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.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(&reg,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(&reg,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(&reg,sizeof(BLOCK_FREE_T),1,f_block_free);
                        if ( reg.block == num_bloque ){
                while ( !feof(f_block_free) ){
                        fread(&reg,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(&reg,sizeof(BLOCK_FREE_T),1,f_block_free);
                                break;
                                fseek(f_block_free,-sizeof(BLOCK_FREE_T),SEEK_CUR);
                                fwrite(&reg,sizeof(BLOCK_FREE_T),1,f_block_free);
                                break;