mpool

Autres langues

Langue: ja

Version: 1993-06-04 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

mpool - ¶¦Í­¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¥×¡¼¥ë

½ñ¼°


#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, u_int flags); int mpool_put (MPOOL *mp, void *pgaddr, u_int flags); int mpool_sync (MPOOL *mp); int mpool_close (MPOOL *mp);

ÀâÌÀ

mpool ¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ú¡¼¥¸»Ø¸þ¤Î¥Ð¥Ã¥Õ¥¡´ÉÍý¤ò¼ÂÁõ¤·¤¿ ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ç¤¢¤ë¡£

´Ø¿ô mpool_open() ¤Ï¥á¥â¥ê¥×¡¼¥ë¤ò½é´ü²½¤¹¤ë¡£ key °ú¿ô¤Ï¥Ð¥¤¥Èʸ»úÎó¤Ç¤¢¤ê¡¢¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤·¤¿¤¤Ê£¿ô¥×¥í¥»¥¹´Ö ¤Ç¤Î¥Í¥´¥·¥¨¡¼¥·¥ç¥ó¤Ë»È¤ï¤ì¤ë¡£ ¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤¬¶¦Í­¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¤È¡¢ Ʊ¤¸¥­¡¼¤ò»È¤¦¥×¥í¥»¥¹¤ÏÁ´¤Æ¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤¹¤ë¡£ key ¤¬ NULL ¤À¤È¡¢¥Ð¥Ã¥Õ¥¡¤Ï¥×¥é¥¤¥Ù¡¼¥È¤Ê¥á¥â¥ê¤Ë³ä¤êÉÕ¤±¤é¤ì¤ë¡£ fd °ú¿ô¤Ï¤â¤È¤Ë¤Ê¤ë¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ ¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¥·¡¼¥¯²Äǽ¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ key ¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä´û¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¡¢ fd °ú¿ô¤Ï̵»ë¤µ¤ì¤ë¡£

pagesize °ú¿ô¤Ï¥Ð¥¤¥Èñ°Ì¤Ç¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¤Ï¤³¤Î¥µ¥¤¥º¤Ëʬ³ä¤µ¤ì¤ë¡£ maxcache °ú¿ô¤Ï´ð¥Õ¥¡¥¤¥ë¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¤È¤­¤ËÍѤ¤¤ëºÇÂç¥Ú¡¼¥¸¿ô¤Ç¤¢¤ë¡£ ¤³¤ÎÃͤϥե¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¤Ë¤Ï´Ø·¸¤Ê¤¤¤¬¡¢ ¥Õ¥¡¥¤¥ë¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤¬»ØÄꤷ¤¿¤¦¤Á¤ÎºÇÂçÃͤ¬¼ÂºÝ¤ËÍѤ¤¤é¤ì¤ë¡£

´Ø¿ô mpool_filter() ¤ÏÆ©²áŪ¤Ê¥Ú¡¼¥¸Æþ½ÐÎϽèÍý¤ò²Äǽ¤Ë¤¹¤ë¡£ ´Ø¿ô pgin ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ ¥Õ¥¡¥¤¥ë¤«¤é¥á¥â¥ê¥×¡¼¥ë¤ËÆɤ߹þ¤Þ¤ì¤ëÅ٤ˤ³¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ ´Ø¿ô pgout ¤¬»ØÄꤵ¤ì¤Æ¤¤¤È¡¢ ¥Ð¥Ã¥Õ¥¡¤«¤é¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤µ¤ì¤ëÅ٤ˤ³¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ ¤É¤Á¤é¤Î´Ø¿ô¤â¡¢ pgcookie ¥Ý¥¤¥ó¥¿¡¢¥Ú¡¼¥¸¿ô¡¢Æɤ߽ñ¤­¤µ¤ì¤ë¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤Ë¤È¤ë¡£

´Ø¿ô mpool_new() ¤Ï MPOOL ¥Ý¥¤¥ó¥¿¤È¥¢¥É¥ì¥¹¤ò°ú¿ô¤Ë¤È¤ë¡£ ¿·¤·¤¤¥Ú¡¼¥¸¤¬³ä¤êÅö¤Æ²Äǽ¤Ê¾ì¹ç¡¢¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¡¢ ¥Ú¡¼¥¸¿ô¤¬ pgnoaddr ¥¢¥É¥ì¥¹¤ËǼ¤á¤é¤ì¤ë¡£ ³ä¤êÅö¤Æ¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤Ï NULL ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£

´Ø¿ô mpool_get() ¤Ï MPOOL ¥Ý¥¤¥ó¥¿¤È¥Ú¡¼¥¸¿ô¤ò°ú¿ô¤Ë¤È¤ë¡£¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Æ¤¤¤ë¤È¡¢ ¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ ¸ºß¤·¤Æ¤¤¤Ê¤¤¤È NULL ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ flag ¥Ñ¥é¥á¡¼¥¿¤Ï¸½ºß»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£

´Ø¿ô mpool_put() ¤Ï pgaddr ¤¬»²¾È¤¹¤ë¥Ú¡¼¥¸¤ò²òÊü¤¹¤ë¡£ pgaddr ¤Ï°ÊÁ°¤Ë mpool_get() ¤« mpool_new() ¤¬ÊÖ¤·¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ flag ¤ÎÃͤϰʲ¼¤ÎÃͤΤ¤¤º¤ì¤«¤«¡¢¤³¤ì¤é¤ÎÏÀÍýϤǤ¢¤ë¡£

MPOOL_DIRTY
¥Ú¡¼¥¸¤ÏÊѹ¹¤µ¤ì¤Æ¤ª¤ê¡¢¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹É¬Íפ¬¤¢¤ë¡£

mpool_put() ¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È -1 ¤òÊÖ¤¹¡£

´Ø¿ô mpool_sync() ¤Ï MPOOL ¥Ý¥¤¥ó¥¿¤Î¼¨¤¹¥Ú¡¼¥¸¤Î¤¦¤Á¡¢ Êѹ¹¤µ¤ì¤¿¤â¤Î¤òÁ´¤Æ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹¡£ mpool_sync() ¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È -1 ¤òÊÖ¤¹¡£

´Ø¿ô mpool_close() ¤Ï¥á¥â¥ê¥×¡¼¥ë¥¯¥Ã¥­¡¼¤Î¼¨¤¹³ä¤êÅö¤ÆºÑ¤ß¤Î¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ Êѹ¹¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤µ¤ì¤Ê¤¤¡£ mpool_close () ¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È -1 ¤òÊÖ¤¹¡£

¥¨¥é¡¼

´Ø¿ô mpool_open() ¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó malloc(3) ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ errno ¤ò¥»¥Ã¥È¤¹¤ë¡£

´Ø¿ô mpool_get() ¤Ï¼ºÇÔ¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ê errno ¤ò¥»¥Ã¥È¤¹¤ë¡£

[EINVAL]
Í×µá¤Î¤¢¤Ã¤¿¥ì¥³¡¼¥É¤Ï¸ºß¤·¤Ê¤¤¡£

´Ø¿ô mpool_new() ¤È mpool_get() ¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó read(2), write(2), malloc(3) ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ errno ¤ò¥»¥Ã¥È¤¹¤ë¡£

´Ø¿ô mpool_sync() ¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó write(2) ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ errno ¤ò¥»¥Ã¥È¤¹¤ë¡£

´Ø¿ô mpool_close() ¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó free(3) ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ errno ¤ò¥»¥Ã¥È¤¹¤ë¡£

½àµò

POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ BSD ·Ï¤Ë¸ºß¤¹¤ë¡£

´ØÏ¢¹àÌÜ

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