dwww Home | Manual pages | Find package

mpool(3)                   Library Functions Manual                   mpool(3)

NOM
       mpool- Partage d'ensembles de tampons mémoires

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

SYNOPSIS
       #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);

DESCRIPTION
       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. Probable-
       ment, vous cherchez plutôt les API fournies par la bibliothèque libdb.

       mpool est l'interface de la bibliothèque fournissant une gestion de fi-
       chiers par des tampons mémoires découpés en pages. Les tampons  peuvent
       être partagés entre les processus.

       La  fonction  mpool_open()  initialise  un ensemble de tampons mémoire.
       L'argument key est la chaîne d'octets utilisée pour négocier entre plu-
       sieurs  processus  désireux  de partager des tampons. Si les tampons de
       fichiers sont projetés en mémoire partagée, tous les  processus  utili-
       sant  la même clé partageront les tampons. Si la clé key vaut NULL, les
       tampons sont projetés en mémoire privée. L'argument fd est un  descrip-
       teur  du  fichier  sous-jacent  qui doit être accessible directement en
       n'importe quel point. Si la clé key n'est pas NULL et correspond  à  un
       fichier déjà projeté, l'argument fd est ignoré.

       Le  fichier  est  découpé  en  pages de la taille pagesize (en octets).
       L'argument maxcache est le nombre maximal de pages du fichier  sous-ja-
       cent, résidant dans le cache à un instant donné. Cette valeur ne dépend
       pas du nombre de processus qui partageront les  tampons  d'un  fichier,
       mais  la plus grande valeur de tous les processus partageant le fichier
       sera prise en compte.

       La fonction mpool_filter() sert à rendre transparent le traitement  des
       pages en entrée et sortie. Si la fonction pgin est spécifiée, elle sera
       appelée à chaque fois qu'un tampon est lu depuis le fichier vers la mé-
       moire.  Si  la fonction pgout est spécifiée, elle sera appelée à chaque
       fois qu'un tampon est écrit dans le fichier. Ces  deux  fonctions  sont
       appelées  avec  le pointeur pgcookie, le numéro de page, et un pointeur
       sur la page lue ou écrite.

       La fonction mpool_new() prend en argument  un  pointeur  MPOOL  et  une
       adresse.  Si une nouvelle page peut être allouée, elle renvoie un poin-
       teur sur cette page, et son numéro est stocké à l'adresse pgnoaddr. Si-
       non elle renvoie NULL et remplit errno.

       La  fonction  mpool_get() prend en argument un pointeur MPOOL et un nu-
       méro de page. Si la page existe, elle renvoie un pointeur  dessus.  Si-
       non,  elle  renvoie  NULL  et remplit errno. L'argument flags n'est pas
       utilisé actuellement.

       La fonction mpool_put() débloque la page référencée par pgaddr.  Pgaddr
       doit  être une adresse que l'on a obtenue précédemment avec mpool_get()
       ou mpool_new(). La valeur d'attribut flags est indiquée avec un OU  bi-
       naire entre les valeurs suivantes :

       MPOOL_DIRTY
              La page a été modifiée est doit être réécrite dans le fichier.

       mpool_put() renvoie 0 en cas de succès et -1 si une erreur se produit.

       La  fonction  mpool_sync() écrit toutes les pages modifiées associée au
       pointeur MPOOL dans le fichier. mpool_sync() renvoie 0 en cas de succès
       et -1 si une erreur se produit.

       La  fonction mpool_close() libère toute mémoire allouée pour l'ensemble
       de tampons mémoire correspondant au cookie. Les pages modifiées ne sont
       pas  écrites  dans le fichier. mpool_close() renvoie 0 en cas de succès
       et -1 si une erreur se produit.

ERREURS
       La fonction mpool_open() peut échouer et remplir errno  avec  n'importe
       quel code d'erreur renvoyé par la routine malloc(3).

       La  fonction  mpool_get()  peut  échouer et renvoyer dans errno le code
       suivant :

       EINVAL         L'enregistrement demandé n'existe pas.

       Les fonctions mpool_new() et mpool_get()  peuvent  échouer  et  remplir
       errno  avec  n'importe  quel  code  d'erreur  renvoyé  par les routines
       read(2), write(2) et malloc(3).

       La fonction mpool_sync() peut échouer et renvoyer dans errno  n'importe
       quel code d'erreur renvoyé par la routine write(2).

       La fonction mpool_close() peut échouer et renvoyer dans errno n'importe
       quel code d'erreur renvoyé par la routine free(3).

STANDARDS
       Absent de POSIX.1. Présent sur les systèmes BSD.

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

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org> et David Prévot <david@tilapin.org>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la       GNU       General       Public        License        version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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.4 Berkeley Distribution       4 décembre 2022                       mpool(3)

Generated by dwww version 1.15 on Sat Jun 29 01:34:39 CEST 2024.