block_size salida de la galera y sin inicializar. Vuelve a andar
(falta agregar soporte multiples bloques)
count++;
tmp = realloc(tmp, count);
tmp[count-1] = reg.id_reg;
count++;
tmp = realloc(tmp, count);
tmp[count-1] = reg.id_reg;
- fprintf(stderr, "Nuevo registro de id = %lu\n", reg.id_reg);
}
}
fclose(f_idx);
(*cant) = count;
}
}
fclose(f_idx);
(*cant) = count;
- fprintf(stderr, "Mando %d registros\n", count);
-/* vim: set noexpandtab tabstop=4 shiftwidth=4:
+/* vim: set noexpandtab tabstop=4 shiftwidth=4 wrap:
*----------------------------------------------------------------------------
* emufs
*----------------------------------------------------------------------------
*----------------------------------------------------------------------------
* emufs
*----------------------------------------------------------------------------
-void* emufs_tipo1_leer_registro_raw(EMUFS *efs, EMUFS_REG_ID id,
- EMUFS_REG_SIZE *size, int *pos)
+void* emufs_tipo1_leer_registro_raw(EMUFS *efs, EMUFS_REG_ID id, EMUFS_REG_SIZE *size, int *pos)
{
char* block; /* bloque leido (en donde está el registro a leer) */
EMUFS_BLOCK_ID block_id; /* id del bloque en donde esta el registro a leer */
EMUFS_BLOCK_SIZE offset; /* offset del bloque leído */
{
char* block; /* bloque leido (en donde está el registro a leer) */
EMUFS_BLOCK_ID block_id; /* id del bloque en donde esta el registro a leer */
EMUFS_BLOCK_SIZE offset; /* offset del bloque leído */
- EMUFS_BLOCK_SIZE block_size; /* tamaño del bloque leído */
EMUFS_TIPO1_REG_HEADER curr_reg_header; /* cabecera del registro a leer */
int err;
EMUFS_TIPO1_REG_HEADER curr_reg_header; /* cabecera del registro a leer */
int err;
if (block_id == EMUFS_NOT_FOUND) {
return NULL;
}
if (block_id == EMUFS_NOT_FOUND) {
return NULL;
}
if (!(block = (char*) emufs_tipo1_leer_bloque(efs, block_id, &err))) {
return NULL;
}
if (!(block = (char*) emufs_tipo1_leer_bloque(efs, block_id, &err))) {
return NULL;
}
}
/* Desplazo el offset */
offset += curr_reg_header.size;
}
/* Desplazo el offset */
offset += curr_reg_header.size;
- } while (offset < block_size);
+ } while (offset < efs->tam_bloque);
+ (*size) = efs->tam_bloque;
/* Si el tipo es el mismo, no tengo que hacer nada! */
if (old->tipo == tipo) return;
/* Si el tipo es el mismo, no tengo que hacer nada! */
if (old->tipo == tipo) return;
- fprintf(stderr, "Me prepado para cambiar de archivo\n");
-
/* Creo el nuevo file */
nuevo = emufs_crear("emufs_tmp", tipo, tam_bloque, sizeof(t_Articulo));
if (nuevo == NULL) {
/* Creo el nuevo file */
nuevo = emufs_crear("emufs_tmp", tipo, tam_bloque, sizeof(t_Articulo));
if (nuevo == NULL) {
/* Leo los indices del archivo viejo */
indices = emufs_idx_get(old, &indices_total);
if (indices == NULL) {
/* Leo los indices del archivo viejo */
indices = emufs_idx_get(old, &indices_total);
if (indices == NULL) {
- fprintf(stderr, "NO HAY INDICES!\n");
art_liberar(lst_nueva);
return;
}
for(i=0; i<indices_total; i++) {
art_liberar(lst_nueva);
return;
}
for(i=0; i<indices_total; i++) {
- fprintf(stderr, "Registro %lu de %lu\n", i, indices_total);
- fprintf(stderr, "A leer : %lu\n", indices[i]);
-
+ fprintf(stderr, "A procesar %lu de %lu\n",i, indices_total);
error = 0;
save = old->leer_registro(old, indices[i], &size, &error);
error = 0;
save = old->leer_registro(old, indices[i], &size, &error);
- fprintf(stderr, "Lei\n");
if (procesar_leer_articulo(&art, save, size, lst_articulos) == 1) {
if (procesar_leer_articulo(&art, save, size, lst_articulos) == 1) {
- fprintf(stderr, "Procese\n");
free(save);
/* Lei un registro Ok. Lo salvo en el archivo nuevo */
save = procesar_guardar_articulo(&art, &size, lst_nueva);
free(save);
/* Lei un registro Ok. Lo salvo en el archivo nuevo */
save = procesar_guardar_articulo(&art, &size, lst_nueva);
- fprintf(stderr, "Procese guardar\n");
if (save) {
error = 0;
id = nuevo->grabar_registro(nuevo, save, size, &error);
if (save) {
error = 0;
id = nuevo->grabar_registro(nuevo, save, size, &error);
- fprintf(stderr, "Guarde\n");
agregar_nodo_articulo(lst_nueva, crear_nodo_articulo(id, art.numero));
free(save);
}
agregar_nodo_articulo(lst_nueva, crear_nodo_articulo(id, art.numero));
free(save);
}
fprintf(stderr, "Listo. Renombre y me voy\n");
/* Muevo los archivos! */
/* TODO : Poner en otro lugar mas generico! */
fprintf(stderr, "Listo. Renombre y me voy\n");
/* Muevo los archivos! */
/* TODO : Poner en otro lugar mas generico! */
-/* rename("emufs_tmp.dat", "articulos.dat");
+ rename("emufs_tmp.dat", "articulos.dat");
rename("emufs_tmp.idx", "articulos.idx");
rename("emufs_tmp.fsc", "articulos.fsc");
rename("emufs_tmp.idx", "articulos.idx");
rename("emufs_tmp.fsc", "articulos.fsc");
- rename("emufs_tmp.did", "articulos.did");*/
+ rename("emufs_tmp.did", "articulos.did");
/* Cuento la cantidad de registros en este bloque */
cant_header = 0;
offset = 0;
/* Cuento la cantidad de registros en este bloque */
cant_header = 0;
offset = 0;
+ fprintf(stderr, "Tam = %lu\n", *size);
do {
/* Me salto el ID, que no me interesa saber su valor */
offset += sizeof(EMUFS_REG_ID);
do {
/* Me salto el ID, que no me interesa saber su valor */
offset += sizeof(EMUFS_REG_ID);