fclose(f_idx);
return -1;
}
+
+int emufs_idx_actualizar(EMUFS *emu, int ID, int bloque)
+{
+ FILE *f_idx;
+ char name_f_idx[255];
+ EMUFS_IDX reg;
+
+ strcpy(name_f_idx,emu->nombre);
+ strcat(name_f_idx, EMUFS_IDX_EXT);
+
+ if ( (f_idx = fopen(name_f_idx, "r+")) == NULL){
+ PERR("No se pudo abrir el archivo");
+ return -1;
+ }
+
+ fseek(f_idx,ID*sizeof(EMUFS_IDX),SEEK_SET);
+ fread(®,sizeof(EMUFS_IDX),1,f_idx);
+ reg.location = bloque;
+ fseek(f_idx,-sizeof(EMUFS_IDX),SEEK_CUR);
+ fwrite(®,sizeof(EMUFS_IDX),1,f_idx);
+ fclose(f_idx);
+ return 0;
+}
printf("Modo de uso : %s tam_bloque\n", argv[0]);
return 1;
}
-/*
- if (atoi(argv[1]) < 104) {
- printf("El tamaño de bloque debe ser mayor a 104\n");
- return 1;
- }
-*/
strcpy(a, "1234567890");
strcpy(c, "REGISTRO NUMERO 2. ESTE REGISTRO ES MUCHO MAS LARGO QUE EL UNO");
strcpy(d, "ABCDEFGHIJKL");
fp = emufs_crear("articulos", T3, atoi(argv[1]), 100);
- printf("pase0\n");
n1 = fp->grabar_registro(fp, a, 100, &err);
- printf("pase1\n");
n2 = fp->grabar_registro(fp, c, 100, &err);
n3 = fp->grabar_registro(fp, d, 100, &err);
n4 = fp->grabar_registro(fp, e, 100, &err);
n7 = fp->grabar_registro(fp, h, 100, &err);
n8 = fp->grabar_registro(fp, i, 100, &err);
-/*
- fp->borrar_registro(fp, n1);
- fp->borrar_registro(fp, n2);
- fp->borrar_registro(fp, n3);
- fp->borrar_registro(fp, n4);
- fp->borrar_registro(fp, n5);
-/* if ( fp->borrar_registro(fp, n6) == -1) printf("la cague %d\n",n6);
- if ( fp->borrar_registro(fp, n7) == -1) printf("la cague %d\n",n7);
- if ( fp->borrar_registro(fp, n8) == -1) printf("la cague %d\n",n8);
- */
ver_archivo_FS(fp);
fp->borrar_registro(fp, n3);
fp->borrar_registro(fp, n4);
- printf("pase3\n");
- /*n6 = fp->grabar_registro(fp, g, 100, &err);*/
- printf("pase4\n");
- b_ptr = fp->leer_registro(fp, n7, ®_size, &err);
+ n6 = fp->grabar_registro(fp, g, 100, &err);
+ b_ptr = fp->leer_registro(fp, n6, ®_size, &err);
printf("Recuperado : %s\n", b_ptr);
+
+ fp->borrar_registro(fp, n5);
+ fp->borrar_registro(fp, n6);
+
+ n4 = fp->grabar_registro(fp, h, 100, &err);
+ b_ptr = fp->leer_registro(fp, n2, ®_size, &err);
+ printf("Recuperado : %s\n", b_ptr);
+
free(b_ptr);
-
ver_archivo_FS(fp);
/*s = fp->leer_estadisticas(fp);
printf("tam_archivo = %d\ntam_archivo_bytes = %d\ninfo_control = %d\n",s.tam_archivo,s.tam_archivo_bytes,s.info_control);