.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)mpool.3 8.1 (Berkeley) 6/4/93 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH mpool 3 "2 mai 2024" "Pagini de manual de Linux 6.8" .UC 7 .SH NUME mpool \- grup de memorie tampon partajată .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP \fB#include \fP .P \fBMPOOL *mpool_open(DBT *\fP\fIkey\fP\fB, int \fP\fIfd\fP\fB, pgno_t \fP\fIpagesize\fP\fB, pgno_t \fP\fImaxcache\fP\fB);\fP .P \fBvoid mpool_filter(MPOOL *\fP\fImp\fP\fB, void (*pgin)(void *, pgno_t, void *),\fP \fB void (*\fP\fIpgout\fP\fB)(void *, pgno_t, void *),\fP \fB void *\fP\fIpgcookie\fP\fB);\fP .P \fBvoid *mpool_new(MPOOL *\fP\fImp\fP\fB, pgno_t *\fP\fIpgnoaddr\fP\fB);\fP \fBvoid *mpool_get(MPOOL *\fP\fImp\fP\fB, pgno_t \fP\fIpgno\fP\fB, unsigned int \fP\fIflags\fP\fB);\fP \fBint mpool_put(MPOOL *\fP\fImp\fP\fB, void *\fP\fIpgaddr\fP\fB, unsigned int \fP\fIflags\fP\fB);\fP .P \fBint mpool_sync(MPOOL *\fP\fImp\fP\fB);\fP \fBint mpool_close(MPOOL *\fP\fImp\fP\fB);\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 \fImpool\fP este interfața de bibliotecă destinată să asigure gestionarea memoriei tampon orientată spre pagină a fișierelor. Memoriile tampon pot fi partajate între procese. .P Funcția \fBmpool_open\fP() inițializează un grup de memorie. Argumentul \fIkey\fP este șirul de octeți utilizat pentru a negocia între mai multe procese care doresc să împartă memorii tampon. În cazul în care memoriile tampon ale fișierelor sunt alocate în memoria partajată, toate procesele care utilizează aceeași cheie vor partaja memoriile tampon. Dacă \fIkey\fP este NULL, tampoanele sunt alocate în memoria privată. Argumentul \fIfd\fP este un descriptor de fișier pentru fișierul de bază, care trebuie să poată fi căutat. În cazul în care \fIkey\fP nu este NULL și corespunde unui fișier care este deja alocat, argumentul \fIfd\fP este ignorat. .P Argumentul \fIpagesize\fP este dimensiunea, în octeți, a paginilor în care este împărțit fișierul. Argumentul \fImaxcache\fP este numărul maxim de pagini din fișierul de bază care trebuie să fie stocate în memoria cache la un moment dat. Această valoare nu este relativă la numărul de procese care împart memoriile tampon ale unui fișier, ci va fi cea mai mare valoare specificată de oricare dintre procesele care partajează fișierul. .P Funcția \fBmpool_filter\fP() este menită să facă posibilă prelucrarea transparentă a paginilor la intrare și la ieșire. În cazul în care este specificată funcția \fIpgin\fP, aceasta este apelată de fiecare dată când o memorie tampon este citită în grupul de memorie din fișierul de suport (backing). În cazul în care este specificată funcția \fIpgout\fP, aceasta este apelată de fiecare dată când o memorie tampon este scrisă în fișierul de suport. Ambele funcții sunt apelate cu indicatorul \fIpgcookie\fP, numărul paginii și un indicator la pagina care urmează să fie citită sau scrisă. .P Funcția \fBmpool_new\fP() primește ca argumente un indicator \fIMPOOL\fP și o adresă. Dacă se poate aloca o pagină nouă, se returnează un indicator la pagina respectivă, iar numărul paginii este stocat în adresa \fIpgnoaddr\fP. În caz contrar, se returnează NULL și se configurează \fIerrno\fP. .P Funcția \fBmpool_get\fP() primește ca argumente un indicator \fIMPOOL\fP și un număr de pagină. În cazul în care pagina există, se returnează un indicator la pagina respectivă. În caz contrar, se returnează NULL și se configurează \fIerrno\fP. Argumentul \fIflags\fP nu este utilizat în prezent. .P Funcția \fBmpool_put\fP() detașează pagina la care face referire \fIpgaddr\fP. \fIpgaddr\fP trebuie să fie o adresă returnată anterior de \fBmpool_get\fP() sau \fBmpool_new\fP(). Valoarea indicatorului este specificată prin combinarea prin OR a oricăreia dintre următoarele valori: .TP \fBMPOOL_DIRTY\fP Pagina a fost modificată și trebuie să fie scrisă în fișierul de rezervă. .P \fBmpool_put\fP() returnează 0 în caz de succes și \-1 dacă apare o eroare. .P Funcția \fBmpool_sync\fP() scrie toate paginile modificate asociate cu indicatorul \fIMPOOL\fP în fișierul de suport. \fBmpool_sync\fP() returnează 0 în caz de succes și \-1 în caz de eroare. .P Funcția \fBmpool_close\fP() eliberează orice memorie alocată asociată cu modulul cookie al grupului de memorie. Paginile modificate \fBnu\fP sunt scrise în fișierul de suport. \fBmpool_close\fP() returnează 0 în caz de succes și \-1 dacă apare o eroare. .SH ERORI\-IEȘIRE Funcția \fBmpool_open\fP() poate eșua și configura \fIerrno\fP pentru oricare dintre erorile specificate pentru rutina de bibliotecă \fBmalloc\fP(3). .P Funcția \fBmpool_get\fP() poate eșua și configura \fIerrno\fP pentru următoarele situații: .TP 15 \fBEINVAL\fP Înregistrarea solicitată nu există. .P Funcțiile \fBmpool_new\fP() și \fBmpool_get\fP() pot eșua și pot configura \fIerrno\fP pentru oricare dintre erorile specificate pentru rutinele de bibliotecă \fBread\fP(2), \fBwrite\fP(2) și \fBmalloc\fP(3). .P Funcția \fBmpool_sync\fP() poate eșua și configura \fIerrno\fP pentru oricare dintre erorile specificate pentru rutina de bibliotecă \fBwrite\fP(2). .P Funcția \fBmpool_close\fP() poate eșua și configura \fIerrno\fP pentru oricare dintre erorile specificate pentru rutina de bibliotecă \fBfree\fP(3). .SH STANDARDE BSD. .SH "CONSULTAȚI ȘI" \fBbtree\fP(3), \fBdbopen\fP(3), \fBhash\fP(3), \fBrecno\fP(3) .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 .