hash(3) | Library Functions Manual | hash(3) |
hash - Méthodes d'accès aux bases de données avec tables de hachage
Bibliothèque C standard (libc, -lc)
#include <sys/types.h> #include <db.h>
NOTE : cette page décrit des interfaces fournies jusqu'à la glibc 2.1. Depuis la glibc 2.2, la glibc ne fournit plus ces interfaces. Veuillez consulter les API fournies par la bibliothèque libdb.
La routine dbopen(3) est l'interface de bibliothèque des fichiers de base de données. L'un des formats de fichier pris en charge est la table de hachage. La description générale des méthodes d'accès à une base de données est fournie dans la page de manuel dbopen(3). La page présente ne décrit que les informations spécifiques aux tables de hachage.
Les structures de hachage représentent un schéma de base de données dynamique et extensible.
La structure de données spécifique aux tables de hachage que l'on transmet à dbopen(3) est définie 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 éléments de cette structure sont les suivants :
Si le fichier existe déjà (et si le drapeau O_TRUNC n'est pas spécifié), les valeurs spécifiées dans bsize, ffactor, lorder et nelem sont ignorées et les valeurs spécifiées lors de la création de l'arbre sont utilisées à la place.
Si une fonction de hachage est indiquée, hash_open essaie de déterminer s'il s'agit de la même fonction que celle indiquée lors de la création de la base de données, et échoue si ce n'est pas le cas.
Des interfaces pour les routines décrites dans dbm(3), et ndbm(3) sont fournies pour la compatibilité ascendante, toutefois ces interfaces ne sont pas compatibles avec les anciens formats de fichier.
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).
Seuls les ordres d'octets gros boutiste (big-endian) et petit boutiste (little-endian) fonctionnent.
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.
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.
4 décembre 2022 | 4.4 Berkeley Distribution |