Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       mpool - grup de memorie tampon partajată

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <db.h>
       #include <mpool.h>

       MPOOL *mpool_open(DBT *key, int fd, pgno_t pagesize, pgno_t maxcache);

       void mpool_filter(MPOOL *mp, void (*pgin)(void *, pgno_t, void *),
                         void (*pgout)(void *, pgno_t, void *),
                         void *pgcookie);

       void *mpool_new(MPOOL *mp, pgno_t *pgnoaddr);
       void *mpool_get(MPOOL *mp, pgno_t pgno, unsigned int flags);
       int mpool_put(MPOOL *mp, void *pgaddr, unsigned int flags);

       int mpool_sync(MPOOL *mp);
       int mpool_close(MPOOL *mp);

DESCRIERE

       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.

       mpool este interfața de bibliotecă destinată să asigure gestionarea memoriei tampon orientată spre pagină
       a fișierelor. Memoriile tampon pot fi partajate între procese.

       Funcția mpool_open() inițializează un grup de memorie. Argumentul  key  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ă  key este NULL, tampoanele sunt alocate în memoria
       privată. Argumentul fd este un descriptor de fișier pentru fișierul de bază, care  trebuie  să  poată  fi
       căutat.  În cazul în care key nu este NULL și corespunde unui fișier care este deja alocat, argumentul fd
       este ignorat.

       Argumentul pagesize este dimensiunea, în octeți, a paginilor în care este împărțit  fișierul.  Argumentul
       maxcache  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.

       Funcția mpool_filter() este menită să facă posibilă prelucrarea transparentă a paginilor la intrare și la
       ieșire.  În  cazul  în  care  este  specificată funcția pgin, 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  pgout,  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 pgcookie, numărul paginii și un  indicator
       la pagina care urmează să fie citită sau scrisă.

       Funcția  mpool_new()  primește  ca argumente un indicator MPOOL ș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
       pgnoaddr. În caz contrar, se returnează NULL și se configurează errno.

       Funcția  mpool_get()  primește  ca  argumente  un indicator MPOOL ș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ă errno. Argumentul flags nu este utilizat în prezent.

       Funcția  mpool_put()  detașează  pagina  la  care  face  referire  pgaddr. pgaddr trebuie să fie o adresă
       returnată  anterior  de  mpool_get()  sau  mpool_new().  Valoarea  indicatorului  este  specificată  prin
       combinarea prin OR a oricăreia dintre următoarele valori:

       MPOOL_DIRTY
              Pagina a fost modificată și trebuie să fie scrisă în fișierul de rezervă.

       mpool_put() returnează 0 în caz de succes și -1 dacă apare o eroare.

       Funcția mpool_sync() scrie toate paginile modificate asociate cu indicatorul MPOOL în fișierul de suport.
       mpool_sync() returnează 0 în caz de succes și -1 în caz de eroare.

       Funcția mpool_close() eliberează orice memorie alocată asociată cu modulul cookie al grupului de memorie.
       Paginile modificate nu sunt scrise în fișierul de suport.  mpool_close() returnează 0 în caz de succes și
       -1 dacă apare o eroare.

ERORI-IEȘIRE

       Funcția  mpool_open()  poate  eșua  și  configura  errno pentru oricare dintre erorile specificate pentru
       rutina de bibliotecă malloc(3).

       Funcția mpool_get() poate eșua și configura errno pentru următoarele situații:

       EINVAL         Înregistrarea solicitată nu există.

       Funcțiile mpool_new() și mpool_get() pot eșua și  pot  configura  errno  pentru  oricare  dintre  erorile
       specificate pentru rutinele de bibliotecă read(2), write(2) și malloc(3).

       Funcția  mpool_sync()  poate  eșua  și  configura  errno pentru oricare dintre erorile specificate pentru
       rutina de bibliotecă write(2).

       Funcția mpool_close() poate eșua și configura errno pentru  oricare  dintre  erorile  specificate  pentru
       rutina de bibliotecă free(3).

STANDARDE

       BSD.

CONSULTAȚI ȘI

       btree(3), dbopen(3), hash(3), recno(3)

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   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.4 Berkeley Distribution                          2 mai 2024                                           mpool(3)