* Ya hay un demo que guarda algo en un archivo. Falta verificar el resultado.
#define EXT_TIPO3_ID ".id3"
#define EXT_TIPO3_DATA ".dat"
#define EXT_TIPO3_DISP ".fsc"
+#define EXT_TIPO3_IDS ".idc"
char *str_dup(const char *s)
{
fwrite(&tam_bloque, sizeof(unsigned int), 1, fp);
fwrite(&tam_reg, sizeof(unsigned int), 1, fp);
fclose(fp);
+
+ strcpy(name, filename);
+ strcat(name, EXT_TIPO3_ID);
+ fp = fopen(name, "w");
+ fclose(fp);
+
+ strcpy(name, filename);
+ strcat(name, EXT_TIPO3_DISP);
+ fp = fopen(name, "w");
+ fclose(fp);
+
+ strcpy(name, filename);
+ strcat(name, EXT_TIPO3_IDS);
+ fp = fopen(name, "w");
+ fclose(fp);
break;
default:
free(tmp);
fp = emufs_crear("articulos", T3, 512, 100);
- fp->grabar_registro(fp, a, strlen(a)+1);
+ printf("ID = %d\n", fp->grabar_registro(fp, a, strlen(a)+1));
emufs_destruir(fp);
return 0;
/* me devuelve el ID del bloque donde quepa un registro y el espacio libre en "fs"*/
num_bloque = buscar_lugar(emu, tam, &fs);
/*si no hay bloques con suficiente espacio creo un bloque nuevo */
+ printf("num_bloque = %d\n", num_bloque);
if (num_bloque == -1) {
/*crear un nuevo bloque en memoria */
bloque = (char*)malloc(emu->tam_bloque);
strcat(name_f_block_reg,".fsc");
if ( (f_block_free = fopen(name_f_block_reg,"r"))==NULL ) return -1;
-
+
+ /* Inicializo la estructura para evitar que si el archivo esta vacio
+ * el resultado sea correcto
+ */
+ reg.block = -1;
while( !feof(f_block_free) ){
fread(®,sizeof(reg),1,f_block_free);
if ( reg.free_space >= tam )