int (*leer_bloque)(int ID, void *, unsigned long tam);
int (*leer_registro)(int ID, void *, unsigned long tam);
int (*grabar_registro)(int ID, void *, unsigned long tam);
- char *nombre;
+ tEstadisticas (*obtener_estadisticas)(void); /* Estadisticas. Definir estructura!! */
+ void (*compactar)(); /* Reorganiza los registros a fin de optimizarlo */
+ char *nombre;
} EMUFS;
+Estos punteros a funciones son los que requiere la interfaz visual para operar
+con los tipos de archivos. Cada tipo de archivo deberá escribir tantas
+funciones como crea necesario para poder brindar su completa funcionalidad.
+
luego hay 3 funciones generales:
/* Abre, determina el tipo de archivo y retorna todo bonito */
- EMUFS *efs_open(const char *archivo);
+ EMUFS *emufs_open(const char *archivo);
/* cierra (libera memoria) */
- int efs_close(EMUFS *);
+ int emufs_close(EMUFS *);
/* Crea un nuevo archivo de un tipo dado */
- EMUFS *efs_create(const char *nombre, int tipo);
+ EMUFS *emufs_create(const char *nombre, int tipo);
El uso básico es de la siguiente manera:
EMUFS *fd;
- fd = efs_open("facturas.dat");
+ fd = emufs_open("facturas.dat");
fd->leer_registro(5, dato, 5);
Cosas que resolver :