Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       hash - Methodes d'acces aux bases de donnees avec tables de hachage

SYNOPSIS

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

DESCRIPTION

       La  routine  dbopen(3)  est l'interface de bibliotheque des fichiers de
       base de donnees. L'un des formats de fichier supportes est la table  de
       hachage.  La  description  generale  des methodes d'acces a une base de
       donnees est fournie dans la page de manuel dbopen(3). La page  presente
       ne decrit que les informations specifiques aux tables de hachage.

       Les  structures  de  hachage  representent un schema de base de donnees
       dynamique et extensible.

       La structure de donnees specifique  aux  tables  de  hachage  que  l'on
       transmet a dbopen(3) est definie dans <db.h> ainsi :

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

       Les elements de cette structure sont les suivants :

       bsize     defini  la  taille  des  cases  de la table (bucket size), et
                 vaut, par defaut, 256 octets. Il est  preferable  d'augmenter
                 la  taille  de  page pour les tables situees sur disque ayant
                 des elements avec beaucoup de donnees.

       ffactor   indique une densite desiree au sein de la  table.  Il  s'agit
                 d'une  approximation  du  nombre  de cles pouvant s'accumuler
                 dans une seule case, ce qui determine le moment ou  la  table
                 doit s'agrandir ou se retrecir. La valeur par defaut est 8.

       nelem     est  une  estimation  de  la  taille  finale  de  la table de
                 hachage. S'il n'est pas configure, ou s'il est configure trop
                 bas, la table s'agrandira quand meme correctement au fur et a
                 mesure de l'entree des cles, bien qu'une  legere  degradation
                 des  performances  puisse etre observee. La valeur par defaut
                 est 1.

       cachesize est la taille maximale suggeree de memoire cache, en  octets.
                 Ceci  n'a  qu'une  valeur indicative, et les methodes d'acces
                 alloueront plus de memoire plutot que d'echouer.

       hash      est une fonction  definie  par  l'utilisateur.  Comme  aucune
                 fonction de hachage ne se comporte parfaitement bien sur tout
                 type de donnees, il peut arriver que la fonction interne soit
                 particulierement  mauvaise sur un jeu particulier de donnees.
                 La fonction de hachage fournie par l'utilisateur doit prendre
                 deux  arguments  (un  pointeur sur une chaine d'octets et une
                 longueur) et renvoyer une valeur sur 32 bits utilisable comme
                 valeur de hachage.

       lorder    est  l'ordre des octets pour les entiers stockes dans la base
                 de donnees. Ce nombre doit  representer  l'ordre  sous  forme
                 d'entier.  Par  exemple  l'ordre poids faible-poids fort (big
                 endian) est represente par le nombre 4321. Si lorder  vaut  0
                 (pas  d'ordre  indique),  on  utilise  l'ordre  des octets du
                 systeme hote.

       Si le  fichier  existe  deja  (et  si  le  drapeau  O_TRUNC  n'est  pas
       specifie),  les valeurs specifiees dans bsize, ffactor, lorder et nelem
       sont ignores et les valeurs specifiees lors de la creation  de  l'arbre
       sont utilisees a la place.

       SI  une  fonction  de  hachage  est  indiquee,  hash_open  essayera  de
       determiner s'il s'agit de la meme fonction que celle indiquee  lors  de
       la creation de la base de donnees, et echouera si ce n'est pas le cas.

       Des  interfaces pour les routines decrites dans dbm(3), et ndbm(3) sont
       fournies pour la compatibilite ascendante, toutefois ces interfaces  ne
       sont pas compatibles avec les anciens formats de fichier.

ERREURS

       Les  routines  d'acces aux tables de hachage peuvent echouer et remplir
       errno avec n'importe quelle erreur indiquee par la routine dbopen(3).

BOGUES

       Seuls les ordres d'octets gros boutiste (big-endian) et petit  boutiste
       (little-endian) fonctionnent.

VOIR AUSSI

       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.

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain Portal <URL:http://manpagesfr.free.fr/>  (2003-2006).   Florentin
       Duneau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

4.4 Berkeley Distribution        18 aout 1994                          HASH(3)