Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
mpool, mpool_open, mpool_filter, mpool_new, mpool_get, mpool_put,
mpool_sync, mpool_close - Partage d'ensembles de tampons memoires
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
mpool est l'interface de la bibliotheque fournissant une gestion de
fichiers par des tampons memoires decoupes en pages. Les tampons
peuvent etre partages entre les processus.
La fonction mpool_open() initialise un ensemble de tampons memoire.
L'argument key est la chaine d'octets utilisee pour negocier entre
plusieurs processus desireux de partager des tampons. Si les tampons de
fichiers sont projetes en memoire partagee, tous les processus
utilisant la meme cle partageront les tampons. Si la cle key vaut NULL,
les tampons sont projetes en memoire privee. L'argument fd est un
descripteur du fichier sous-jacent qui doit etre accessible directement
en n'importe quel point. Si la cle key n'est pas NULL et correspond a
un fichier deja projete, l'argument fd est ignore.
Le fichier est decoupe en pages de la taille pagesize (en octets).
L'argument maxcache est le nombre maximal de pages du fichier
sous-jacent, residant dans le cache a un instant donne. Cette valeur ne
depend 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 a rendre transparent le traitement des
pages en entree et sortie. Si la fonction pgin est specifiee, elle sera
appelee a chaque fois qu'un tampon est lu depuis le fichier vers la
memoire. Si la fonction pgout est specifiee, elle sera appelee a chaque
fois qu'un tampon est ecrit dans le fichier. Ces deux fonctions sont
appelees avec le pointeur pgcookie, le numero de page, et un pointeur
sur la page lue ou ecrite.
La fonction mpool_new() prend en argument un pointeur MPOOL et une
adresse. Si une nouvelle page peut etre allouee, elle renvoie un
pointeur sur cette page, et son numero est stocke a l'adresse pgnoaddr.
Sinon elle renvoie NULL et remplit errno.
La fonction mpool_get() prend en argument un pointeur MPOOL et un
numero de page. Si la page existe, elle renvoie un pointeur dessus.
Sinon, elle renvoie NULL et remplit errno. L'argument flags n'est pas
utilise actuellement.
La fonction mpool_put() debloque la page referencee par pgaddr. Pgaddr
doit etre une adresse que l'on a obtenue precedemment avec mpool_get()
ou mpool_new(). La valeur d'attribut flags est indiquee avec un OU
binaire entre les valeurs suivantes :
MPOOL_DIRTY
La page a ete modifiee est doit etre reecrite dans le fichier.
mpool_put() renvoie 0 en cas de succes et -1 si une erreur se produit.
La fonction mpool_sync() ecrit toutes les pages modifiees associee au
pointeur MPOOL dans le fichier. mpool_sync() renvoie 0 en cas de succes
et -1 si une erreur se produit.
La fonction mpool_close() libere toute memoire allouee pour l'ensemble
de tampons memoire correspondant au cookie. Les pages modifiees ne sont
pas ecrites dans le fichier. mpool_close() renvoie 0 en cas de succes
et -1 si une erreur se produit.
ERREURS
La fonction mpool_open() peut echouer et remplir errno avec n'importe
quel code d'erreur renvoye par la routine malloc(3).
La fonction mpool_get() peut echouer et renvoyer dans errno le code
suivant :
EINVAL L'enregistrement demande n'existe pas.
Les fonctions mpool_new() et mpool_get() peuvent echouer et remplir
errno avec n'importe quel code d'erreur renvoye par les routines
read(2), write(2) et malloc(3).
La fonction mpool_sync() peut echouer et renvoyer dans errno n'importe
quel code d'erreur renvoye par la routine write(2).
La fonction mpool_close() peut echouer et renvoyer dans errno n'importe
quel code d'erreur renvoye par la routine free(3).
CONFORMIT'E
Absent de POSIX.1-2001. Present sur les systemes BSD.
VOIR AUSSI
btree(3), dbopen(3), hash(3), recno(3)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Florentin
Duneau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.