char name[255];
FILE *fp;
EMUFS *efs;
+ int err = 0;
/* Si no es un tipo conocido, sale. */
if ((tipo != T1) && (tipo != T2) && (tipo != T3)) {
case T1:
/* Asigna punteros a funciones. */
- /* TODO verificar que el tamaño de bloque sea como mínimo del
- * tamaño de la cabecera de un registro + N */
- fprintf(stderr, "tambloque = %d\n", efs->tam_bloque);
- emufs_tipo1_inicializar(efs);
+ if ((err = emufs_tipo1_inicializar(efs))) {
+ PERR("No se pudo inicializar el EMUFS de tipo1");
+ free(efs->nombre);
+ free(efs);
+ return NULL;
+ }
/* Guarda cabeceras propias. */
fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
char name[255];
char tipo;
FILE *fp;
+ int err = 0;
strcpy(name, filename);
strcat(name, ".dat");
return NULL;
}
/* Asigna punteros a funciones. */
- emufs_tipo1_inicializar(efs);
+ if ((err = emufs_tipo1_inicializar(efs))) {
+ PERR("No se pudo inicializar el EMUFS de tipo1");
+ fclose(fp);
+ return NULL;
+ }
break;
case T2:
/* Asigna punteros a funciones. */
static int emufs_tipo1_block_jump(EMUFS*, FILE*, EMUFS_BLOCK_ID);
-static void emufs_tipo1_escribir_reg_en_memoria(char*, EMUFS_TIPO1_REG_HEADER,
- char*);
-
static void emufs_tipo1_escribir_reg_chunk_en_memoria(char* dst,
EMUFS_TIPO1_REG_HEADER header, char* reg, EMUFS_REG_SIZE reg_size);
}
/* si me lo solicitan, actualizo el .fsc */
if (fs != EMUFS_NOT_FOUND) {
- if ((err = emufs_fsc_actualizar(efs, block_id, fs))) {
+ if ((*err = emufs_fsc_actualizar(efs, block_id, fs))) {
/* TODO Manejo de errores */
PERR("no se pudo actualizar .fsc");
fclose(file);
return 0; /* EMUFS_OK */
}
-void emufs_tipo1_escribir_reg_en_memoria(char* dst, EMUFS_TIPO1_REG_HEADER header,
- char* reg)
-{
- emufs_tipo1_escribir_reg_chunk_en_memoria(dst, header, reg, header.size);
-}
-
void emufs_tipo1_escribir_reg_chunk_en_memoria(char* dst,
EMUFS_TIPO1_REG_HEADER header, char* reg, EMUFS_REG_SIZE reg_size)
{
EMUFS_REG_ID *tmp, max_id;
EMUFS_BLOCK_ID block_id;
EMUFS_REG_SIZE size;
- EMUFS_Estadisticas s;
+ EMUFS_FREE fs;
char name[255];
char *reg;
- int err=0, ID_aux, i,fs;
+ int err=0, ID_aux, i;
strcpy(name, emu->nombre);
strcat(name, ".dat");
char h[100];
char i[100];
char* b_ptr;
- int err = 0, max, min, j;
+ int err = 0, j;
EMUFS_Estadisticas stats;
if (argc != 2) {
strcpy(i, "me argrego despues de borrar a un registro");
fp = emufs_crear("articulos", T3, atoi(argv[1]), 100);
- printf("cant de bloques = %d\n", fp->tam_reg/(fp->tam_bloque-sizeof(EMUFS_REG_ID)) +1);
+ printf("cant de bloques = %lu\n", fp->tam_reg/(fp->tam_bloque-sizeof(EMUFS_REG_ID)) +1);
printf("GRABANDO REGISTROS....\n");
v[0] = fp->grabar_registro(fp, a, 100, &err);
v[1] = fp->grabar_registro(fp, c, 100, &err);
v[7] = fp->grabar_registro(fp, i, 100, &err);
for (j=0; j<8; j++)
- printf("Grabado : %d\n", v[j]);
+ printf("Grabado : %lu\n", v[j]);
printf("RECUPERANDO REGISTROS....\n");
for (j=0; j<8; j++){
printf("BORRANDO REGISTROS....\n");
for (j=0; j<8; j+=2){
fp->borrar_registro(fp, v[j]);
- printf("borrado : %d\n", v[j]);
+ printf("borrado : %lu\n", v[j]);
}
for (j=1; j<8; j+=2){
printf("BORRANDO REGISTROS....\n");
for (j=0; j<16; j+=3){
fp->borrar_registro(fp, v[j]);
- printf("borrado : %d\n", v[j]);
+ printf("borrado : %lu\n", v[j]);
}