hash(3) | Library Functions Manual | hash(3) |
hash - metoda de acces la baza de date a sumelor ce control (hash)
Biblioteca C standard (libc, -lc)
#include <sys/types.h> #include <db.h>
Notează bine: Această pagină documentează interfețele furnizate până la glibc 2.1. Începând cu glibc 2.2, glibc nu mai furnizează aceste interfețe. Probabil că, în schimb, căutați API-urile furnizate de biblioteca libdbb.
Rutina dbopen(3) este interfața bibliotecii cu fișierele de baze de date. Unul dintre formatele de fișiere acceptate este cel al fișierelor hash. Descrierea generală a metodelor de acces la baza de date se găsește în dbopen(3), iar această pagină de manual descrie doar informațiile specifice hash.
Structura de date de sume de control este o schemă de bază de date extensibilă și dinamică.
Structura de date specifică metodei de acces furnizată lui dbopen(3) este definită în fișierul de includere <db.h> după cum urmează:
typedef struct { unsigned int bsize; unsigned int ffactor; unsigned int nelem; unsigned int cachesize; uint32_t (*hash)(const void *, size_t); int lorder; } HASHINFO;
Elementele acestei structuri sunt următoarele:
În cazul în care fișierul există deja (și nu este specificat fanionul O_TRUNC), valorile specificate pentru bsize, ffactor, lorder și nelem sunt ignorate și se utilizează valorile specificate la crearea arborelui.
Dacă este specificată o funcție hash(), hash_open încearcă să determine dacă funcția hash specificată este aceeași cu cea cu care a fost creată baza de date și eșuează dacă nu este așa.
Sunt furnizate interfețe retro-compatibile cu rutinele descrise în dbm(3) și ndbm(3), însă aceste interfețe nu sunt compatibile cu formatele de fișiere anterioare.
Rutinele metodei de acces hash pot eșua și pot configura errno pentru oricare dintre erorile specificate pentru rutina de bibliotecă dbopen(3).
Se acceptă numai ordinea big și little endian a octeților.
btree(3), dbopen(3), mpool(3), recno(3)
Dynamic Hash Tables, Per-Ake Larson, Communications of the ACM, aprilie 1988.
A New Hash Package for UNIX, Margo Seltzer, USENIX Proceedings, iarna anului 1991.
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
4 decembrie 2022 | 4.4 Berkeley Distribution |