X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/af41f59f8447bed15fda171a18a84a5c1327bc8f..d92b78bef269069562805ff75bc80c7c111028ee:/emufs/fsc.c?ds=inline diff --git a/emufs/fsc.c b/emufs/fsc.c index 7e556bd..95d378a 100644 --- a/emufs/fsc.c +++ b/emufs/fsc.c @@ -36,6 +36,7 @@ */ #include "fsc.h" +#include "error.h" #include #include #include @@ -124,7 +125,10 @@ int emufs_fsc_agregar_gap(EMUFS *emu, EMUFS_OFFSET marker, EMUFS_FREE freespace) /* Busco el gap que sucede a este */ fseek(f_fsc,0,SEEK_SET); while (!feof(f_fsc)) { - fread(&gap_aux,sizeof(EMUFS_FSC),1,f_fsc); + if (fread(&gap_aux,sizeof(EMUFS_FSC),1,f_fsc) != 1) { + if (feof(f_fsc)) break; + PERR("error al leer archivo fsc"); + } if (gap_aux.marker > gap_new.marker) { found = 1; break; @@ -367,7 +371,7 @@ EMUFS_BLOCK_ID emufs_fsc_buscar_n_lugares(EMUFS* efs, size_t n, /* chequeo que al menos se busque un lugar */ if (!n) { PERR("Se debe buscar al menos un lugar"); - *err = 13; /* EMUFS_ERROR_WRONG_ARGUMENT */ + *err = EMUFS_ERROR_WRONG_ARGUMENT; return EMUFS_NOT_FOUND; } @@ -376,7 +380,7 @@ EMUFS_BLOCK_ID emufs_fsc_buscar_n_lugares(EMUFS* efs, size_t n, strcat(name_f_fsc, EMUFS_FSC_EXT); if (!(f_fsc = fopen(name_f_fsc, "rb"))) { PERR("No se puede abrir archivo"); - *err = 4; /* EMUFS_ERROR_CANT_OPEN_FILE */ + *err = EMUFS_ERROR_CANT_OPEN_FILE; return EMUFS_NOT_FOUND; } @@ -385,7 +389,7 @@ EMUFS_BLOCK_ID emufs_fsc_buscar_n_lugares(EMUFS* efs, size_t n, if ((fread(®, sizeof(EMUFS_FSC), 1, f_fsc) != 1)) { if (feof(f_fsc)) break; PERR("No se puede leer el archivo"); - *err = 3; /* EMUFS_ERROR_FILE_READ */ + *err = EMUFS_ERROR_FILE_READ; return EMUFS_NOT_FOUND; } if (reg.freespace >= reg_size) { @@ -396,7 +400,7 @@ EMUFS_BLOCK_ID emufs_fsc_buscar_n_lugares(EMUFS* efs, size_t n, if (fread(®, sizeof(EMUFS_FSC), 1, f_fsc) != 1) { if (feof(f_fsc)) break; PERR("No se puede leer el archivo"); - *err = 3; /* EMUFS_ERROR_FILE_READ */ + *err = EMUFS_ERROR_FILE_READ; return EMUFS_NOT_FOUND; } /* no hay otro lugar consecutivo */