X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/c831082edc6038351f9ec6c2e55b85ef41d213f4..0197ffb819756560ce134f0d8303ce8054b39d37:/emufs/tipo3.c diff --git a/emufs/tipo3.c b/emufs/tipo3.c index 601d3df..4971f5e 100644 --- a/emufs/tipo3.c +++ b/emufs/tipo3.c @@ -151,14 +151,12 @@ EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE t /*tengo que buscar la cantidad de bloques que existen*/ /*me paro al principio salteando el encabezado del archivo*/ fseek(file, 0, SEEK_END); /* Me paro al final */ - /* FIXME FIXME FIXME FALTA TRADUCIR A EMUFS_XXXX */ - cant = (ftell(file)-(sizeof(int)*2+sizeof(char))) / emu->tam_bloque; + cant = (ftell(file)-(sizeof(EMUFS_TYPE)+sizeof(EMUFS_REG_SIZE)+sizeof(EMUFS_BLOCK_SIZE))) / emu->tam_bloque; cant--; /* Resto uno porque el numero de bloque debe empezar en 0 */ fclose(file); num_bloque = cant; /* grabo el nuevo registro en el archivo de espacios libres */ - /* FIXME FIXME FIXME FALTA TRADUCIR A EMUFS_XXXX */ - if ( emufs_fsc_agregar(emu, num_bloque, emu->tam_bloque - emu->tam_reg - sizeof(int)) != 0 ) { + if ( emufs_fsc_agregar(emu, num_bloque, emu->tam_bloque - emu->tam_reg - sizeof(EMUFS_REG_ID)) != 0 ) { free(bloque); return -1; } @@ -182,8 +180,7 @@ EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE t return -1; /* se produjo un error */ } /*actualizo el archivo de espacios libres*/ - /* FIXME FIXME FIXME FALTA TRADUCIR A EMUFS_XXXX */ - if ( emufs_fsc_actualizar(emu, num_bloque, fs - emu->tam_reg - sizeof(int)) != 0 ){ + if ( emufs_fsc_actualizar(emu, num_bloque, fs - emu->tam_reg - sizeof(EMUFS_REG_ID)) != 0 ){ free(bloque); return -1; } @@ -220,7 +217,7 @@ int emufs_tipo3_grabar_bloque(EMUFS *emu, void *ptr, EMUFS_BLOCK_ID num) if ( (file = fopen(name_f,"r+"))==NULL ) return -1; /*ERROR*/ /* Salto el header del archivo */ - fseek(file, sizeof(char)+sizeof(int)*2, SEEK_SET); + fseek(file, sizeof(EMUFS_TYPE)+sizeof(EMUFS_REG_SIZE)+sizeof(EMUFS_BLOCK_SIZE), SEEK_SET); fseek(file, num*emu->tam_bloque, SEEK_CUR); fwrite(ptr, emu->tam_bloque, 1, file); @@ -238,7 +235,7 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID) EMUFS_FREE fs; char *bloque; int err = 0; - +printf("pase %d\n",__LINE__); num_bloque = emufs_idx_buscar_registro(emu, ID); if (!(bloque = emufs_tipo3_leer_bloque(emu, num_bloque, &err))) { /* TODO Manejo de errores */ @@ -254,7 +251,7 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID) break; ptr_elim += emu->tam_reg + sizeof(EMUFS_REG_ID); } - +printf("pase %d\n",__LINE__); /*apunto al registro que voy a mover*/ ptr_mov = ptr_elim + emu->tam_reg + sizeof(EMUFS_REG_ID); @@ -263,14 +260,14 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID) ptr_elim = ptr_mov; ptr_mov += sizeof(EMUFS_REG_ID) + emu->tam_reg; } - +printf("pase %d\n",__LINE__); /*grabo el bloque en el archivo*/ if ( emufs_tipo3_grabar_bloque(emu, bloque, num_bloque) == -1 ){ free(bloque); printf("No se pudo grabar el bloque\n"); return -1; } - +printf("pase %d\n",__LINE__); /*actualizo archivo .fsc*/ fs = emufs_fsc_get_fs(emu, num_bloque); if ( emufs_fsc_actualizar(emu, num_bloque, fs + emu->tam_reg + sizeof(EMUFS_REG_ID)) != 0 ) return -1; @@ -280,7 +277,7 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID) /*actualizo archivo .idx*/ if ( emufs_idx_borrar(emu, ID) != 0 ) return -1; - +printf("pase %d\n",__LINE__); free(bloque); return 0; }