funcion emufs->modificar_registro en las tipoX_inicilizar (solo tipo2 la tenia).
case T1:
/* Lee cabeceras propias. */
if (!fread(&(efs->tam_bloque), sizeof(EMUFS_BLOCK_SIZE), 1, fp)) {
+ PERR("ERROR Tipo1 no se pudo leer cabecera");
free(efs->nombre);
free(efs);
fclose(fp);
if ((!fread(&(efs->tam_bloque), sizeof(EMUFS_BLOCK_SIZE), 1, fp)) ||
(!fread(&(efs->tam_reg), sizeof(EMUFS_REG_SIZE), 1, fp)))
{
+ PERR("ERROR Tipo3 no se pudo leer header");
free(efs->nombre);
free(efs);
fclose(fp);
}
/* Asigna punteros a funciones. */
emufs_tipo5_inicializar(efs);
+ default:
+ PERR("EMUFS TIPO NO SOPORTADO");
}
/* finalmente cargo la data de los indices */
efs->leer_registro_raw = emufs_tipo1_leer_registro_raw;
efs->leer_estadisticas = emufs_tipo1_leer_estadisticas;
efs->compactar = emufs_tipo1_compactar;
+ efs->modificar_registro = emufs_tipo1_modificar_registro;
efs->tam_reg = 0;
return EMUFS_OK;
}
efs->leer_registro_raw = emufs_tipo3_leer_registro_raw;
efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
efs->compactar = emufs_tipo3_compactar;
+ efs->modificar_registro = emufs_tipo3_modificar_registro;
efs->tam_reg = 0;
return EMUFS_OK;
}
clean:
cd generar_archivos; make clean
- @$(RM) -vf *.o emufs_view *.dat *.did *.fsc *.idx
+ @$(RM) -vf *.o emufs_view *.dat *.did *.fsc *.idx *.info
CLAVE k;
INDICE_DATO dummy1;
k.i_clave = numero;
+ EMUFS *fp;
/* dummy se pasa porque esto se hace por clave primaria, y el INDICE_DATO que se
* pasa solo es requerido cuando son claves multiples
*/
PERR("Guardando modificacion de Stock");
error = 0;
fprintf(stderr, "PTR=%p %p\n", lst_articulos, lst_articulos->fp);
- lst_articulos->fp->modificar_registro(lst_articulos->fp, k, tmp, size, &error, dummy1);
+ fp = lst_articulos->fp;
+ PERR("Pase1");
+ fprintf(stderr, "METODO : %p\n", fp->modificar_registro);
+ fp->modificar_registro(fp, k, tmp, size, &error, dummy1);
+ PERR("Pase2");
PERR("Listo");
free(tmp);
}