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);
efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
efs->modificar_registro = emufs_tipo3_modificar_registro;
efs->compactar = emufs_tipo3_compactar;
+ efs->leer_bloque_raw = emufs_tipo3_leer_bloque_raw;
/* Guarda cabeceras propias. */
fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
fwrite(&tam_reg, sizeof(EMUFS_REG_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. */
efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
efs->modificar_registro = emufs_tipo3_modificar_registro;
efs->compactar = emufs_tipo3_compactar;
+ efs->leer_bloque_raw = emufs_tipo3_leer_bloque_raw;
break;
}