|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > m > mpool - ライブラリコールの説明 mpool - ライブラリコールの説明 - Linux コマンド集 一覧表名前mpool - 共有メモリバッファプール 書式
#include <db.h> #include <mpool.h> 説明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_open ()は失敗するとライブラリルーチン malloc (3) で指定されているエラーに応じた errno をセットする。 関数 mpool_get ()は失敗すると次のような errno をセットする。
準拠POSIX.1-2001 にはない。 BSD 系に存在する。 関連項目
|
|