/* Sistema de ficheros simbolico */ /* version 2.1, abril 1998 */ /* Prototipos de funciones */ typedef unsigned short int u_short; /* Funcion para la creacion de un fichero */ int Crea_Fichero( Nombre nomb, Atributo atrib ); /* nomb: cadena de caracteres que contiene el nombre del fichero */ /* atrib: accesos permitidos */ /* Retorna: 0 creacion con exito, -1 en caso de error */ /* Funcion para borrar un fichero */ int Borra_Fichero( Nombre nomb ); /* nomb: nombre del fichero a borrar */ /* Retorna: 0 se pudo borrar, -1 en caso de error */ /* Funcion para abrir un fichero */ int Abre_Fichero( Nombre nomb, Acceso acces ); /* nomb: nombre del fichero a abrir */ /* acces: accesos a realizar (LECTURA y/o ESCRITURA) */ /* Retorna: 0 apertura con exito, -1 en caso de error */ /* Funcion para posicionar el puntero de acceso al fichero */ int Posiciona_Puntero( int fd, Posfich punt ); /* fd: descriptor valido de fichero */ /* punt: nueva posicion */ /* Retorna: punt si operacion con exito, -1 en caso de error */ /* Funcion para leer una cadena de bytes */ int Lee_Fichero( int fd, void *buff, int nbytes ); /* fd: descriptor valido de archivo */ /* buff: puntero a zona de memoria donde recoger los bytes leidos */ /* nbytes: numero de bytes a leer */ /* Retorna: valor positivo si se leen bytes, -1 en caso de error */ /* Funcion para escibir una cadena de bytes */ int Escribe_Fichero( int fd, void *buff, int nbytes ); /* fd: descriptor valido de ficehro */ /* buff: puntero a memoria donde estan los bytes a escribir */ /* nbytes: numero de bytes a escribir */ /* Retorna: nbytes si escritura con exito, en caso de error -1 */ /* Funcion para cerrar un fichero */ int Cierra_Fichero( int fd ); /* fd: descriptor valido de fichero */ /* Retorna: o si cierre con exito, -1 en caso de error */ /* Funcion para crear un sistema de archivos */ int Crea_Sistema( char *nomb, u_short nbloq, u_short tbloq, u_short nfich); /* nomb: fichero UNIX que contendra en sistema de archivos */ /* nbloq: numero de bloques de datos del sistema a crear */ /* tbloq: bytes de los bloques de datos */ /* nfich: numero de entradas del directorio de volumen */ /* Retorna: 0 si creacion con exito, -1 en caso de error */ /* Funcion para activar un sistema de archivos aun no activo */ int Activa_Sistema( char *nomb, int nbloque_cache ); /* nomb: nombre del fichero UNIX que contiene el sistema a activar */ /* nbloque_cache: numero de bloques de la cache de disco */ /* IMPORTANTE: Para probar pasen este parametro con valor 0 */ /* Retorna: 0 si activacion con exito, en caso de error -1 */ /* Funcion para desactivar un sistema de archivos */ int Desactiva_Sistema( ); /* Retorna: 0 si desactivacion realizada, -1 en caso de error */ /* Funcion para visualizar estado del sistema de archivos */ void InformeSFS( void ); /* Debera presentar al menos lo siguiente: */ /* 1. Ficheros abiertos: puntero de acceso, modo de */ /* apertura y contador de referencias. */ /* 2. Caracteristicas basicas del superbloque: tamano y */ /* numero de ficheros en de directorio de volumen */ /* 3. Ficheros existentes en el directorio de volumen: */ /* tamano, fecha de actualizacion y atributos de acceso */