X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/0a8c25d48c0fa1602556582885e33426cb2e05fa..2b317be73e4cfc0751df22597752cd98ce51740c:/emufs/tipo1.c diff --git a/emufs/tipo1.c b/emufs/tipo1.c index ee444ce..d68095f 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -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 */ } -