X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/3fedb806fdecbcb4508773321011e96ab27903e9..681f9d807b6f486e251e49401abe40c09b7855c1:/emufs/idx.c?ds=sidebyside diff --git a/emufs/idx.c b/emufs/idx.c index dcf57c5..35ebcf4 100644 --- a/emufs/idx.c +++ b/emufs/idx.c @@ -131,7 +131,6 @@ EMUFS_BLOCK_ID emufs_idx_buscar_registro(EMUFS *emu, EMUFS_REG_ID reg_id) return EMUFS_NOT_FOUND; } -/* agrega un registro al final del archivo */ int emufs_idx_agregar(EMUFS *emu, EMUFS_REG_ID id_reg, EMUFS_BLOCK_ID location) { FILE *f_idx; @@ -141,7 +140,7 @@ int emufs_idx_agregar(EMUFS *emu, EMUFS_REG_ID id_reg, EMUFS_BLOCK_ID location) strcpy(name_f_idx,emu->nombre); strcat(name_f_idx, EMUFS_IDX_EXT); - if ( (f_idx = fopen(name_f_idx,"a+b"))==NULL ) return -1; + if ( (f_idx = fopen(name_f_idx,"r+"))==NULL ) return -1; fseek(f_idx, sizeof(EMUFS_IDX)*id_reg, SEEK_SET); reg.id_reg = id_reg; @@ -239,7 +238,7 @@ int emufs_idx_existe_id(EMUFS *emu, int ID) PERR("No se pudo abrir el archivo"); return -1; } - + if (fseek(f_idx, sizeof(EMUFS_IDX)*ID, SEEK_SET) == 0) { fread(®, sizeof(EMUFS_IDX), 1, f_idx); if (reg.location != EMUFS_NOT_FOUND) { @@ -247,12 +246,11 @@ int emufs_idx_existe_id(EMUFS *emu, int ID) return 0; } } - fclose(f_idx); - return -1; + return -1;/*no existe el id*/ } -int emufs_idx_actualizar(EMUFS *emu, int ID, int bloque) +int emufs_idx_actualizar(EMUFS *emu, int ID, EMUFS_BLOCK_ID bloque) { FILE *f_idx; char name_f_idx[255]; @@ -265,7 +263,7 @@ int emufs_idx_actualizar(EMUFS *emu, int ID, int bloque) PERR("No se pudo abrir el archivo"); return -1; } - + fseek(f_idx,0,SEEK_SET); fseek(f_idx,ID*sizeof(EMUFS_IDX),SEEK_SET); fread(®,sizeof(EMUFS_IDX),1,f_idx); reg.location = bloque;