X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/cba7ac4355bfc8feadd6490a253e9e4466ed5f8c..cfcbab8ec369453b7809f2d2954b15d1bb5fcfdd:/emufs/tipo3.c diff --git a/emufs/tipo3.c b/emufs/tipo3.c index b9dc8b7..721d9ef 100644 --- a/emufs/tipo3.c +++ b/emufs/tipo3.c @@ -38,7 +38,8 @@ #include "tipo3.h" /** Leo un registro del archivo, devuelve cero si no lo encuentra.**/ -void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID, int* err) +void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID, + EMUFS_REG_SIZE* reg_size, int* err) { char* bloque; char* registro; /* registro a leer */ @@ -70,13 +71,13 @@ void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID, int* err) return NULL; } memcpy(registro,bloque+iterador,emu->tam_reg); + *reg_size = emu->tam_reg; break; } iterador += emu->tam_reg; } free(bloque); - (*err) = emu->tam_reg; return registro; } @@ -116,7 +117,7 @@ void* emufs_tipo3_leer_bloque(EMUFS *emu, EMUFS_REG_ID ID, int* err) return block; } -EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE tam) +EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE tam, int* err) { EMUFS_REG_ID ID_aux; EMUFS_FREE fs; @@ -125,7 +126,6 @@ EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE t FILE *file; char name_f[255]; char* bloque; - int err = 0; strcpy(name_f,emu->nombre); strcat(name_f,".dat"); @@ -163,7 +163,7 @@ EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE t } } else { /*cargo el bloque en "bloque"*/ - if (!(bloque = emufs_tipo3_leer_bloque(emu, num_bloque, &err))) { + if (!(bloque = emufs_tipo3_leer_bloque(emu, num_bloque, err))) { /* TODO Manejo de errores */ printf("no se pudo leer el bloque\n"); return -1;