.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)hash.3 8.6 (Berkeley) 8/18/94 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH hash 3 "2 mai 2024" "Pagini de manual de Linux 6.8" .UC 7 .SH NUME hash \- metoda de acces la baza de date a sumelor ce control (hash) .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include #include \fP .fi .SH DESCRIERE \fINotează bine\fP: 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 \fIlibdbb\fP. .P Rutina \fBdbopen\fP(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 \fBdbopen\fP(3), iar această pagină de manual descrie doar informațiile specifice hash. .P Structura de date de sume de control este o schemă de bază de date extensibilă și dinamică. .P Structura de date specifică metodei de acces furnizată lui \fBdbopen\fP(3) este definită în fișierul de includere \fI\fP după cum urmează: .P .in +4n .EX typedef struct { unsigned int bsize; unsigned int ffactor; unsigned int nelem; unsigned int cachesize; uint32_t (*hash)(const void *, size_t); int lorder; } HASHINFO; .EE .in .P Elementele acestei structuri sunt următoarele: .TP 10 \fIbsize\fP definește dimensiunea „găleții” (bucket) tabelului sumelor de control și este, în mod implicit, de 256 de octeți. Poate fi preferabil să se mărească dimensiunea paginii pentru tabelele rezidente pe disc și pentru tabelele cu elemente de date mari. .TP \fIffactor\fP indică o densitate dorită în cadrul tabelului sumelor de control (hash). Este o aproximare a numărului de chei care pot fi acumulate într\-o singură găleată (bucket), determinând momentul în care tabelul sumelor de control crește sau se micșorează. Valoarea implicită este 8. .TP \fInelem\fP este o estimare a dimensiunii finale a tabelului sumelor de control. Dacă nu este definită sau valoarea definită este prea mică, tabelele sumelor de control se vor extinde în mod elegant pe măsură ce sunt introduse chei, deși se poate observa o ușoară degradare a performanței. Valoarea implicită este 1. .TP \fIcachesize\fP este dimensiunea maximă sugerată, în octeți, a spațiului de prestocare (cache). Această valoare este \fIdoar consultativă\fP, iar metoda de acces va aloca mai multă memorie în loc să eșueze. .TP \fIhash\fP este o funcție hash() definită de utilizator. Deoarece nicio funcție hash() nu funcționează la fel de bine pentru toate datele posibile, utilizatorul poate constata că funcția hash() încorporată nu funcționează bine pentru un anumit set de date. O funcție hash() definită de utilizator trebuie să primească două argumente (un indicator la un șir de octeți și o lungime) și să returneze o cantitate de 32 de biți care să fie utilizată ca valoare a sumei de control (hash). .TP \fIlorder\fP este ordinea octeților pentru numerele întregi din metadatele stocate în baza de date. Numărul ar trebui să reprezinte ordinea ca număr întreg; de exemplu, ordinea big endian ar fi numărul 4,321. Dacă \fIlorder\fP este 0 (nu este specificată nicio ordine), se utilizează ordinea curentă a gazdei. Dacă fișierul există deja, valoarea specificată este ignorată și se utilizează valoarea specificată la crearea arborelui. .P În cazul în care fișierul există deja (și nu este specificat fanionul \fBO_TRUNC\fP), valorile specificate pentru \fIbsize\fP, \fIffactor\fP, \fIlorder\fP și \fInelem\fP sunt ignorate și se utilizează valorile specificate la crearea arborelui. .P Dacă este specificată o funcție hash(), \fIhash_open\fP î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. .P Sunt furnizate interfețe retro\-compatibile cu rutinele descrise în \fBdbm\fP(3) și \fBndbm\fP(3), însă aceste interfețe nu sunt compatibile cu formatele de fișiere anterioare. .SH ERORI\-IEȘIRE Rutinele metodei de acces \fIhash\fP pot eșua și pot configura \fIerrno\fP pentru oricare dintre erorile specificate pentru rutina de bibliotecă \fBdbopen\fP(3). .SH ERORI Se acceptă numai ordinea big și little endian a octeților. .SH "CONSULTAȚI ȘI" \fBbtree\fP(3), \fBdbopen\fP(3), \fBmpool\fP(3), \fBrecno\fP(3) .P \fIDynamic Hash Tables\fP, Per\-Ake Larson, Communications of the ACM, aprilie 1988. .P \fIA New Hash Package for UNIX\fP, Margo Seltzer, USENIX Proceedings, iarna anului 1991. .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .