/** Leo un registro del archivo, devuelve cero si no lo encuentra.**/
int leer_registro(int ID, void *str, unsigned long tam)
{
+ /* FIXME : aca tam es el tamaño del registro, no del bloque!
+ *
+ * Aca deberias recibir una estructura EMUFS y de ahi sacar los datos
+ * del tamaño del bloque a leer.
+ *
+ * leer_registro(EMUFS, int, void*, unsigned long);
+ *
+ * Tambien ver que siempre que hay un return se libere toda la memoria!
+ */
char* bloque = (char*)malloc(tam);
- char ID_char[4];
- int block, i, ID_aux, a, b, c, d, tamanio_registro;
+ int block, ID_aux, a, b, c, d, tamanio_registro;
int iterador = 0;
/* tengo que crear los archivos de indice antes de usarlos!!!!!!!!!*/
if ( (block_reg = fopen("block_reg.dat","a+")) == NULL )
/* TODO : la copia es byte a byte. Al archivo
* no le importa que tipo de estructura es
*/
+ //aca va el memcpy... HACER!!
//copiar(dato, &str);
break;
}
// aca, no el tamaño del tipo de dato.
//
// Cuando se crea el archivo se le da el tamaño de un registro
- //iterador += sizeof(dato);
+ iterador += tamanio_registro;
}
fclose(block_reg);
fclose(block_free);
char ex;
if ( (reg_exist = fopen("reg_exist.dat","r")) == NULL) return 0; /*ERROR*/
while ( !feof(reg_exist) ){
- fscanf(reg_exist,"%i%c",num,ex);
+ fscanf(reg_exist,"%i%c",&num,&ex);
if ( num == ID && ex == 'S' ){
fclose(reg_exist);
return 0;
int num_block, num_reg;
if ( (block_reg = fopen("block_reg.dat","r")) == NULL) return 0; /*ERROR*/
while ( !feof(block_reg) ){
- fscanf(block_reg,"%i%i",num_block,num_reg);
+ fscanf(block_reg,"%i%i",&num_block,&num_reg);
if ( num_reg == ID ){
fclose(block_reg);
return num_block;
int leer_bloque(int ID, void* str, unsigned long tam)
{
-
+ return 0;
}