#ifndef __BFB_H #define __BFB_H /*****************************/ /* Bloques de fichero básico */ /*****************************/ #include "tipos.h" /* tipo BFB */ /* */ /* Tipo de datos para manejar bloques de fichero básico */ /* Tamaño del nombre de fichero */ #define LONG_NOMBRE 9 /* Estructura de un BFB */ struct BloqueFicheroBasico { BYTE estado; /* estado del bloque (libre, ocupado) */ char nombre [LONG_NOMBRE]; /* nombre del fichero */ WORD id; /* identificador */ DWORD bloque; /* bloque de datos del fichero */ }; typedef struct BloqueFicheroBasico BFB; #define BFB_LIBRE 0 #define BFB_OCUPADO 1 #define TAM_BFB (sizeof(BFB)) /* Funciones de manipulación de BFB */ /* Estas funciones equivalen a las operaciones primitivas */ /* del tipo abstracto de datos BFB, si el lenguaje C */ /* tuviera soporte de TADs. */ /* Inicio y fin de sesión */ void BFB_empieza_sesion (void); void BFB_termina_sesion (void); /* Transferencias con el disco */ void BFB_recoge ( BFB* bfb, IFB fichero ); void BFB_guarda ( const BFB* bfb, IFB fichero ); /* Alteraciones del BFB */ void BFB_construye ( BFB* bfb, int numero ); void BFB_cambia_longitud ( BFB* bfb, WORD num_bloques ); #endif