]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo1.c
Minor progress, le agarro el ataque a mi linux y se colgo FEO, safe upload por si...
[z.facultad/75.06/emufs.git] / emufs / tipo1.c
index ee444cec3f773f3c6f7a8284c41ad55b98823516..d68095f21ccd564b0e5c8d5173dd011478a906dc 100644 (file)
@@ -50,8 +50,7 @@ int emufs_tipo1_inicializar(EMUFS* efs)
        efs->leer_bloque     = emufs_tipo1_leer_bloque;
        efs->leer_registro   = emufs_tipo1_leer_registro;
        efs->grabar_registro = emufs_tipo1_grabar_registro;
-       efs->borrar_registro = emufs_tipo1_borrar_registro;
-
+       /*efs->borrar_registro = emufs_tipo1_borrar_registro;*/
        return 0;
 }
 
@@ -60,9 +59,10 @@ int emufs_tipo1_leer_registro(EMUFS* efs, EMUFS_REG_ID reg_id, void* reg_ptr,
 {
        char* block; /* bloque leido (en donde está el registro a leer) */
        EMUFS_BLOCK_ID block_id; /* id del bloque en donde esta el registro a leer */
-       EMUFS_BLOCK_SIZE offset; /* offset del bloque leido */
-       EMUFS_REG_SIZE curr_reg_size; /* tamaño del registro leido secuencialmente */
-       EMUFS_REG_ID curr_reg_id; /* id del registro leido secuencialmente */
+       EMUFS_BLOCK_SIZE offset; /* offset del bloque leído */
+       EMUFS_BLOCK_SIZE block_size; /* tamaño del bloque leído */
+       EMUFS_REG_SIZE curr_reg_size; /* tamaño del registro leído secuencialmente */
+       EMUFS_REG_ID curr_reg_id; /* id del registro leído secuencialmente */
 
        block_id = emufs_idx_buscar_registro(efs, reg_id);
        block = (char*) malloc(efs->tam_bloque);
@@ -95,7 +95,7 @@ int emufs_tipo1_leer_registro(EMUFS* efs, EMUFS_REG_ID reg_id, void* reg_ptr,
                }
                /* Desplazo el offset */
                offset += curr_reg_size;
-       } while (offset < efs->tam_bloque);
+       } while (offset < block_size);
 
        free(block);
        return 0;
@@ -105,6 +105,7 @@ int emufs_tipo1_leer_bloque(EMUFS* efs, EMUFS_BLOCK_ID block_id, void *block)
 {
        FILE* file;
        char name_f[255];
+       long cant;
        
        strcpy(name_f,efs->nombre);
        strcat(name_f,".dat");
@@ -118,13 +119,9 @@ int emufs_tipo1_leer_bloque(EMUFS* efs, EMUFS_BLOCK_ID block_id, void *block)
                        SEEK_SET);
        /* FIXME: verificar que no se pase de fin de archivo*/
        fseek(file, block_id * efs->tam_bloque, SEEK_CUR);
-       if (fread(block, efs->tam_bloque, 1, file) != 1) {
-               fclose(file);
-               return -1;
-       }
-
+       cant = fread(block, sizeof(char), efs->tam_bloque, file);
        fclose(file);
-       return 0;
+       return cant;
 }
 
 EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* emu, void* ptr,
@@ -156,4 +153,3 @@ int emufs_tipo1_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg,
 {
        return -1; /* FIXME Error */
 }
-