recno(3) Library Functions Manual recno(3) NOMBRE recno - metodo de acceso a bases de datos con registros numerados BIBLIOTECA Biblioteca Estandar C (libc, -lc) SINOPSIS #include #include DESCRIPCION Note well: This page documents interfaces provided up until glibc 2.1. Since glibc 2.2, glibc no longer provides these interfaces. Probably, you are looking for the APIs provided by the libdb library instead. La rutina dbopen(3) es la interfaz de biblioteca para los ficheros de bases de datos. Uno de los formatos de fichero soportados es el de los ficheros con registros numerados (que llamaremos regnum). La descripcion general de los metodos de acceso a bases de datos se encuentra en la pagina de manual de dbopen(3); esta pagina de manual solo describe informacion especifica de regnum. La estructura de datos de registros numerados esta formada por registros de longitud o fija o variable almacenados en un formato de fichero plano, accedido por el numero logico de registro. La existencia del registro numero cinco implica la existencia de los registros del 1 al 5, y la eliminacion del registro numero 1 hace que el registro numero 5 sea renumerado al registro numero 4, de la misma manera que el cursor se desplazara un registro hacia abajo si se encuentra posicionado despues del registro numero 1. La estructura de datos especifica del metodo de acceso regnum proporcionada a dbopen(3) se define en el fichero cabecera como sigue: typedef struct { unsigned long flags; unsigned int cachesize; unsigned int psize; int lorder; size_t reclen; unsigned char bval; char *bfname; } RECNOINFO; Los elementos de esta estructura se definen de la siguiente manera: flags El valor de las opciones se especifica mediante una operacion O-logica de cualquiera de los siguientes valores: R_FIXEDLEN Los registros son de longitud fija, no delimitados por bytes. El elemento reclen de la estructura especifica la longitud del registro y el elemento bval de la estructura se usa como caracter de relleno. Todos los registros, insertados en la base de datos, cuya longitud es mas pequena que reclen bytes, se completan automaticamente con el caracter bval. R_NOKEY En la interfaz especificada por dbopen(3), la recuperacion secuencial de registros rellena tanto la clave del invocador como las estructuras de datos. Si se especifica la opcion R_NOKEY, no se necesitaran las rutinas con cursor para rellenar la estructura de la clave. Esto permite a las aplicaciones recuperar registros al final de los ficheros sin leer todos los registros que intervienen. R_SNAPSHOT Esta opcion exige que se tome una instantanea del fichero cuando se llame a dbopen(3), en lugar de permitir que cualquier registro sin modificar sea leido del fichero original. cachesize Tamano maximo sugerido, en bytes, de la memoria cache. Este valor solo es consultivo y el metodo de acceso reservara mas memoria antes que fallar. Si cachesize es 0 (no se especifica un tamano) se usa una cache por defecto. psize El metodo de acceso regnum almacena las copias residentes en memoria de sus registros en un arbolB (btree). Este valor es el tamano (en bytes) de las paginas usadas para nodos del arbol. Si psize es 0 (no se especifica un tamano de pagina) se selecciona un tamano de pagina basado en el tamano de bloque de E/S del sistema de ficheros subyacente. Vease btree(3) para mas informacion. lorder El orden de los bytes para los enteros de los metadatos almacenados en la base de datos. El numero deberia representar el orden como un entero; por ejemplo, el orden `el byte de mayor peso el ultimo' (orden ascendente) seria el numero 4321. Si lorder es 0 (no se especifica un orden) se utiliza el orden del anfitrion actual. reclen El tamano de un registro de tamano fijo. bval The delimiting byte to be used to mark the end of a record for variable-length records, and the pad character for fixed-length records. If no value is specified, newlines ("\n") are used to mark the end of variable-length records and fixed-length records are padded with spaces. bfname El metodo de acceso regnum almacena las copias residentes en memoria de sus registros en un arbolB. Si bfname no es NULL, especifica el nombre de un fichero arbolB, como si se especificara el nombre de fichero para una llamadada a dbopen(3) de un fichero arbolB. La parte de datos del par clave/datos usado por el metodo de acceso recno es la misma que la de los otros metodos de acceso. La clave es diferente. El campo data de la clave deberia ser un puntero a una posicion de memoria del tipo recno_t, tal y como se define en el fichero cabecera . Normalmente, este tipo es el tipo entero sin signo mas grande disponible para la implementacion. El campo size de la clave deberia ser el tamano de ese tipo. Ya que puede no haber ningun metadato asociado con los ficheros subyacentes del metodo de acceso regnum, cualquier cambio realizado a los valores por defecto (por ejemplo, a la longitud de los registros de tamano fijo o al valor del separador de bytes) se debe especificar explicitamente cada vez que se abra el fichero. En la interfaz especificada por dbopen(3), el uso de la interfaz put para crear un nuevo registro provocara la creacion de varios registros vacios si el numero de registro es mayor, en mas de uno, que el numero del mayor registro actualmente en la base de datos. ERRORES Las rutinas del metodo de acceso regnum pueden fallar y asignar a errno cualquiera de los errores especificados para la rutina de biblioteca dbopen(3) o el siguiente: EINVAL Se ha intentado anadir un registro a una base de datos de registros de tamano fijo que s demasiado grande para caber. ERRORES Solo se soportan los ordenes de bytes ascedente (el byte de mayor peso el ultimo) y descendente (el byte de menor peso el ultimo). VEASE TAMBIEN btree(3), dbopen(3), hash(3), mpool(3) Document Processing in a Relational Database System, Michael Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman, Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982. TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Juan Piernas Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . 4.4 Berkeley Distribution 15 Junio 2024 recno(3)