#include <string.h>
#include <unistd.h>
-/* Crea un archivo de ID's Liberados. */
int emufs_did_crear(EMUFS* efs)
{
return emufs_crear_archivo_auxiliar(efs->nombre, EMUFS_DID_EXT);
}
-/* Devuelve el ID Libre, liberado mas recientemente (pila) */
EMUFS_REG_ID emufs_did_get_last(EMUFS *efs)
{
FILE *f_did;
- EMUFS_REG_ID n_RegId;
- EMUFS_OFFSET n_Offset;
+ EMUFS_REG_ID n_regid;
+ EMUFS_OFFSET n_offset;
char name_f_did[255];
strcpy(name_f_did, efs->nombre);
/* si el archivo no esta vacio es porque hay un nro disponible*/
fseek(f_did, -sizeof(EMUFS_REG_ID),SEEK_END);
/* leo el ultimo numero */
- fread(&n_RegId,sizeof(EMUFS_REG_ID),1,f_did);
+ fread(&n_regid,sizeof(EMUFS_REG_ID),1,f_did);
/* voy al final */
fseek(f_did, 0, SEEK_END);
/* mido el tamaño del archivo*/
- n_Offset = ftell(f_did);
+ n_offset = ftell(f_did);
fclose(f_did);
/*lo trunco */
- truncate(name_f_did, n_Offset - sizeof(EMUFS_REG_ID));
+ truncate(name_f_did, n_offset - sizeof(EMUFS_REG_ID));
} else {
fclose(f_did);
/* si el archivo esta vacio */
- n_RegId = -1;
+ n_regid = -1;
}
- return n_RegId;
+ return n_regid;
}
-/* Agrega un registro al archivo de ID's Libres (pila) */
-int emufs_did_agregar(EMUFS *efs, EMUFS_REG_ID n_RegId)
+int emufs_did_agregar(EMUFS *efs, EMUFS_REG_ID n_regid)
{
FILE *f_did;
char name_f_did[255];
strcat(name_f_did, EMUFS_DID_EXT);
if ( (f_did = fopen(name_f_did,"a+")) == NULL) return -1;
- fwrite(&n_RegId, sizeof(EMUFS_REG_ID), 1, f_did);
+ fwrite(&n_regid, sizeof(EMUFS_REG_ID), 1, f_did);
fclose(f_did);
return 0;
}
+
#include "emufs.h"
#define EMUFS_DID_EXT ".did"
+/* Crea un archivo de ID's Liberados. */
int emufs_did_crear(EMUFS*);
+/* Agrega un registro al archivo de ID's Libres (pila) */
int emufs_did_agregar(EMUFS *, EMUFS_REG_ID);
+/* Devuelve el ID Libre, liberado mas recientemente (pila) */
EMUFS_REG_ID emufs_did_get_last(EMUFS *);
#endif /* _EMUFS_DID_H */
typedef struct _emu_fs_t {
EMUFS_TYPE tipo;
EMUFS_BLOCK_SIZE tam_bloque; /**< Tamaño de bloque. 0 Si no tiene bloques */
- EMUFS_REG_SIZE tam_reg; /**< Tamaño de registro. 0 Si son registros variables */
+ EMUFS_REG_SIZE tam_reg; /**< Tamaño de registro. 0 Si son registros variables */
int (*leer_bloque)(struct _emu_fs_t*, EMUFS_BLOCK_ID, void*); /**< Método para leer un bloque */
int (*leer_registro)(struct _emu_fs_t*, EMUFS_REG_ID, void *); /**< Método para leer un registro */
EMUFS_REG_ID (*grabar_registro)(struct _emu_fs_t*, void*, EMUFS_REG_SIZE); /**< Método para grabar un registro */