Provided by: manpages-es-dev_4.13-4_all bug

NOMBRE

       hash - método de acceso a bases de datos dispersas (hash)

SINOPSIS

       #include <sys/types.h>
       #include <db.h>

DESCRIPCIÓN

       Note  well:  This page documents interfaces provided in glibc up until version 2.1.  Since
       version 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  dispersos.   La  descripción
       general  de  los  métodos  de  acceso a las bases de datos se encuentra en dbopen(3); esta
       página de manual describe sólo información específica sobre la dispersión.

       La estructura de datos de dispersión es un esquema disperso dinámico y extensible.

       El estructura de datos específica del método de acceso proporcionada a dbopen() se  define
       en el fichero cabecera <db.h> como sigue:

           typedef struct {
               unsigned int       bsize;
               unsigned int       ffactor;
               unsigned int       nelem;
               unsigned int       cachesize;
               uint32_t         (*hash)(const void *, size_t);
               int         lorder;
           } HASHINFO;

       Los elementos de esta estructura son de la siguiente manera:

       bsize     define  el  tamaño  de  la cubeta de la tabla dispersa y es, por defecto, de 256
                 bytes. Puede  ser  preferible  incrementar  el  tamaño  de  página  para  tablas
                 residentes en disco y tabla con grandes elementos de datos.

       ffactor   indica  la densidad deseada dentro de la tabla dispersa. Es una aproximación del
                 número de claves que se  permite  acumular  en  cualquier  cubeta,  determinando
                 cuándo la tabla dispersa crece o se encoge.  El valor por defecto es 8.

       nelem     es  una  estimación del tamaño final de la tabla dispersa.  Si no se configura o
                 se le asigna un valor demasiado pequeño, las tablas dispersas se  expandirán  de
                 forma elegante cuando se introduzcan claves, aunque se puede observar una ligera
                 degradación del rendimiento. El valor por defecto es 1.

       cachesize is the suggested maximum size, in bytes, of the memory  cache.   This  value  is
                 only advisory, and the access method will allocate more memory rather than fail.

       hash      es una función de dispersión definida por el usuario.  Ya que ninguna función de
                 dispersión funciona igualmente bien sobre todos los datos posibles,  el  usuario
                 puede  encontrar  que la función de dispersión ya incorporada funciona de manera
                 pobre sobre un conjunto  de  datos  particular.   Las  funciones  de  dispersión
                 especificadas por el usuario deben tomar dos argumentos (un puntero a una cadena
                 de bytes y una longitud) y devolver una cantidad de 32-bit para usar como  valor
                 de dispersión.

       lorder    es  el  orden  de  los bytes para los enteros de los metadatos almacenados en la
                 base de datos. El número debería  representar  el  orden  como  un  entero;  por
                 ejemplo,  el  orden `el byte de mayor peso el último' (orden ascendente) debería
                 ser el número 4321.  Si lorder es cero (no se especifica un  orden)  se  usa  el
                 orden  del  anfitrión  actual. Si el fichero ya existe, el valor especificado se
                 ignora y se usa el valor especificado cuando se creó la tabla.

       Si el fichero ya existe (y no se especifica la opción O_TRUNC), los valores  especificados
       por  bsize, ffactor, lorder, y nelem se ignoran y se usan los valores especificados cuando
       se creó la tabla.

       Si se especifica una función de dispersión, hash_open intentará determinar si  la  función
       de  dispersión  especificada es la misma que aquella con la que se creó la base de datos y
       fracasará si no lo es.

       Se proporcionan interfaces compatibles con las antiguas rutinas  descritas  en  dbm(3)   y
       ndbm(3);  sin  embargo, estas inferfaces no son compatibles con los anteriores formatos de
       fichero.

ERRORES

       Las rutinas del método de acceso disperso pueden fallar y asignar a  errno  cualquiera  de
       los errores especificados para la rutina de biblioteca dbopen(3).

ERRORES

       Sólo  se  soportan  los  órdenes  de  bytes ascendente (el byte de mayor peso el último) y
       descendente (el byte de menor peso el último).

VÉASE TAMBIÉN

       btree(3), dbopen(3), mpool(3), recno(3)

       Dynamic Hash Tables, Per-Ake Larson, Communications of the ACM, April 1988.

       A New Hash Package for UNIX, Margo Seltzer, USENIX Proceedings, Winter 1991.

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar  una
       descripción  del  proyecto, información sobre cómo informar errores y la última versión de
       esta página en https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

       La traducción  al  español  de  esta  página  del  manual  fue  creada  por  Juan  Piernas
       <piernas@ditec.um.es>

       Esta  traducción  es  documentación  libre;  lea  la  GNU General Public License Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ o posterior con respecto a las condiciones  de
       copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si  encuentra  algún  error  en  la  traducción de esta página del manual, envíe un correo
       electrónico a debian-l10n-spanish@lists.debian.org ⟨⟩.