table of contents
other sections
HASH(3) | Manuel du programmeur Linux | HASH(3) |
NOM¶
hash - Méthodes d'accès aux bases de données avec tables de hachageSYNOPSIS¶
#include <sys/types.h> #include <db.h>
DESCRIPTION¶
NOTE: cette page décrit des interfaces founies par la glibc jusque dans sa version 2.1. Depuis la version 2.2, la glibc ne fournit plus ces interfaces. Veuillez consulter les API fournies par la bibliothèque libdb.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 éléments de cette structure sont les suivants :
- bsize
- défini la taille des cases de la table (bucket size), et vaut, par défaut, 256 octets. Il est préférable d'augmenter la taille de page pour les tables situées sur disque ayant des éléments avec beaucoup de données.
- ffactor
- indique une densité désirée au sein de la table. Il s'agit d'une approximation du nombre de clés pouvant s'accumuler dans une seule case, ce qui détermine le moment où la table doit s'agrandir ou se rétrécir. La valeur par défaut est 8.
- nelem
- est une estimation de la taille finale de la table de hachage. S'il n'est pas configuré, ou s'il est configuré trop bas, la table s'agrandira quand même correctement au fur et à mesure de l'entrée des clés, bien qu'une légère dégradation des performances puisse être observée. La valeur par défaut est 1.
- cachesize
- est la taille maximale suggérée de mémoire cache, en octets. Cela n'a qu'une valeur indicative, et les méthodes d'accès alloueront plus de mémoire plutôt que d'échouer.
- hash
- est une fonction définie par l'utilisateur. Comme aucune fonction de hachage ne se comporte parfaitement bien sur tout type de données, il peut arriver que la fonction interne soit particulièrement mauvaise sur un jeu particulier de données. La fonction de hachage fournie par l'utilisateur doit prendre deux arguments (un pointeur sur une chaîne 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 stockés dans la base de données. Ce nombre doit représenter l'ordre sous forme d'entier. Par exemple l'ordre poids faible-poids fort (big endian) est représenté par le nombre 4321. Si lorder vaut 0 (pas d'ordre indiqué), on utilise l'ordre des octets du système hôte.
ERREURS¶
Les routines d'accès aux tables de hachage peuvent échouer et remplir errno avec n'importe quelle erreur indiquée 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)COLOPHON¶
Cette page fait partie de la publication 3.44 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <http://www.kernel.org/doc/man-pages/>.TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>. Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009). Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet manpages-fr. Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».23 avril 2012 | 4.4 Berkeley Distribution |