-/*Busco en el archivo de Id`s un Id valido para un nuevo registro*/
-int get_id(EMUFS *emu)
-{
- FILE *f_reg_exist, *f_block_reg;
- BLOCK_REG_T reg;
- int id, max = -1, offset;
- char name_f_reg_exist[255];
- char name_f_block_reg[255];
-
- strcpy(name_f_block_reg,emu->nombre);
- strcat(name_f_block_reg,".idx");
-
- strcpy(name_f_reg_exist,emu->nombre);
- strcat(name_f_reg_exist,".did");
-
- if ( (f_reg_exist = fopen(name_f_reg_exist,"r")) == NULL) return -1; /*ERROR*/
- fseek(f_reg_exist, 0, SEEK_END);
-
- if (ftell(f_reg_exist) > 0){
- /* si el archivo no esta vacio es porque hay un nro disponible*/
- fseek(f_reg_exist, -sizeof(int),SEEK_END);
- fread(&id,sizeof(int),1,f_reg_exist);
- fseek(f_reg_exist, 0, SEEK_END);
- offset = ftell(f_reg_exist);
- fclose(f_reg_exist);
- truncate(name_f_reg_exist, offset - sizeof(int));
- }else{
- fclose(f_reg_exist);
- /*si no, hay que buscar el mayor de los numeros*/
- id = -1;
- if ( (f_block_reg = fopen(name_f_block_reg,"r")) == NULL) return -1; /*ERROR*/
- while ( !feof(f_block_reg) ){
- /* Me aseguro de leer la cantidad de bytes correcta */
- if (fread(®,sizeof(BLOCK_REG_T),1,f_block_reg) != 1) continue;
- if ( reg.id_reg >= max )
- max = reg.id_reg;
- }
- id = max+1;
- fclose(f_block_reg);
- }
- return id;
-}
-