]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo3.c
Borrado de registros ya funciona entero dado que se arreglo el idx_borrar. Rutina...
[z.facultad/75.06/emufs.git] / emufs / tipo3.c
index 3656499da6a16af51342509e1b4f7b5474e73863..80ffdd42bf0e0b0d3d3c6905652010ad032d7ddb 100644 (file)
@@ -49,6 +49,11 @@ void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID,
        
        /*si existe, lo busco en el archivo de bloques*/
        block = emufs_idx_buscar_registro(emu,ID); /*me devuelve el nro de bloque al que pertenece el registro*/
        
        /*si existe, lo busco en el archivo de bloques*/
        block = emufs_idx_buscar_registro(emu,ID); /*me devuelve el nro de bloque al que pertenece el registro*/
+       printf("el bloque es = %d\n",block);
+       if ( block == EMUFS_NOT_FOUND ){
+               printf("No se encontro el bloque\n");
+               return NULL;
+       }
        if ((bloque = emufs_tipo3_leer_bloque(emu, block, err)) == NULL) {
                /* TODO Manejo de errores, queda en el codigo de error lo que devolvio
                 * emufs_tipo3_leer_bloque() */
        if ((bloque = emufs_tipo3_leer_bloque(emu, block, err)) == NULL) {
                /* TODO Manejo de errores, queda en el codigo de error lo que devolvio
                 * emufs_tipo3_leer_bloque() */
@@ -226,7 +231,7 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID)
        EMUFS_FREE fs;
        char *bloque;
        int err = 0;
        EMUFS_FREE fs;
        char *bloque;
        int err = 0;
-printf("pase %d\n",__LINE__);
+
        num_bloque = emufs_idx_buscar_registro(emu, ID);
        if (!(bloque = emufs_tipo3_leer_bloque(emu, num_bloque, &err))) {
                /* TODO Manejo de errores */
        num_bloque = emufs_idx_buscar_registro(emu, ID);
        if (!(bloque = emufs_tipo3_leer_bloque(emu, num_bloque, &err))) {
                /* TODO Manejo de errores */
@@ -242,7 +247,7 @@ printf("pase %d\n",__LINE__);
                        break;
                ptr_elim += emu->tam_reg + sizeof(EMUFS_REG_ID);
        }
                        break;
                ptr_elim += emu->tam_reg + sizeof(EMUFS_REG_ID);
        }
-printf("pase %d\n",__LINE__);  
+
        /*apunto al registro que voy a mover*/
        ptr_mov = ptr_elim + emu->tam_reg + sizeof(EMUFS_REG_ID);
        
        /*apunto al registro que voy a mover*/
        ptr_mov = ptr_elim + emu->tam_reg + sizeof(EMUFS_REG_ID);
        
@@ -251,14 +256,14 @@ printf("pase %d\n",__LINE__);
                ptr_elim = ptr_mov;
                ptr_mov += sizeof(EMUFS_REG_ID) + emu->tam_reg;
        }
                ptr_elim = ptr_mov;
                ptr_mov += sizeof(EMUFS_REG_ID) + emu->tam_reg;
        }
-printf("pase %d\n",__LINE__);  
+
        /*grabo el bloque en el archivo*/       
        if ( emufs_tipo3_grabar_bloque(emu, bloque, num_bloque) == -1 ){
                free(bloque);
                printf("No se pudo grabar el bloque\n"); 
                return -1;
        }
        /*grabo el bloque en el archivo*/       
        if ( emufs_tipo3_grabar_bloque(emu, bloque, num_bloque) == -1 ){
                free(bloque);
                printf("No se pudo grabar el bloque\n"); 
                return -1;
        }
-printf("pase %d\n",__LINE__);  
+
        /*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;
        /*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;
@@ -268,7 +273,7 @@ printf("pase %d\n",__LINE__);
                
        /*actualizo archivo .idx*/
        if ( emufs_idx_borrar(emu, ID) != 0 ) return -1; 
                
        /*actualizo archivo .idx*/
        if ( emufs_idx_borrar(emu, ID) != 0 ) return -1; 
-printf("pase %d\n",__LINE__);  
+
        free(bloque);
        return 0;
 }
        free(bloque);
        return 0;
 }