Man page - mpool(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

mpool

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
ERREURS
STANDARDS
VOIR AUSSI
TRADUCTION

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. Veuillez consulter les API fournies par la bibliothĂšque libdb .

mpool est l’interface de la bibliothĂšque fournissant une gestion de fichiers 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 plusieurs processus dĂ©sireux de partager des tampons. Si les tampons de fichiers sont projetĂ©s en mĂ©moire partagĂ©e, tous les processus utilisant 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 descripteur 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-jacent, 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 pointeur sur cette page, et son numĂ©ro est stockĂ© Ă  l’adresse pgnoaddr . Sinon elle renvoie NULL et remplit errno .

La fonction mpool_get () prend en argument un pointeur MPOOL et un numĂ©ro de page. Si la page existe, elle renvoie un pointeur dessus. Sinon, 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 binaire 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

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 Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.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.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Thomas Vincent <tvincent@debian.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 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 .