X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/44e29ffea53b9da70e6b5e16f96aa0231540dd87..8f84e53bb26e345469f615091701a2d8f2c92273:/tipo3/param_cte.c diff --git a/tipo3/param_cte.c b/tipo3/param_cte.c index 896d72a..918dbcd 100644 --- a/tipo3/param_cte.c +++ b/tipo3/param_cte.c @@ -9,9 +9,17 @@ FILE* reg_exist; /** 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 ) @@ -40,6 +48,7 @@ int leer_registro(int ID, void *str, unsigned long tam) /* 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; } @@ -47,7 +56,7 @@ int leer_registro(int ID, void *str, unsigned long tam) // 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); @@ -65,7 +74,7 @@ int existe_registro(int ID) 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; @@ -83,7 +92,7 @@ int buscar_registro(int ID) 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; @@ -96,5 +105,5 @@ int buscar_registro(int ID) int leer_bloque(int ID, void* str, unsigned long tam) { - + return 0; }