mpool(3) Library Functions Manual mpool(3) NOM mpool- Partage d'ensembles de tampons memoires BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include #include 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 decrit des interfaces fournies jusqu'a la glibc 2.1. Depuis la glibc 2.2, la glibc ne fournit plus ces interfaces. Veuillez consulter les API fournies par la bibliotheque libdb. 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). STANDARDS BSD. VOIR AUSSI btree(3), dbopen(3), hash(3), recno(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier et David Prevot Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . 4.4 Berkeley Distribution 31 octobre 2023 mpool(3)