Man page - mpool(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

mpool

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ОШИБКИ
СТАНДАРТЫ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

mpool - общий массив буферов памяти

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#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 );

ОПИСАНИЕ

Примечание : На этой странице описаны интерфейсы, предоставляемые до glibc 2.1. Начиная с glibc 2.2, glibc больше не поддерживает эти интерфейсы. Вероятно, вы ищите API, предоставляемое библиотекой libdb .

Целью библиотечного интерфейса mpool является обеспечение управления буферными страницами файлов. Буферы могут использоваться несколькими процессами.

Функция mpool_open () инициализирует массив памяти. Параметр key является строкой байтов для согласования процессов, желающих совместно использовать буферы. Если файловые буферы отображены в общей памяти, то все процессы, использующие данный одинаковый параметр, будут совместно использовать буферы. Если параметр key равен NULL, то буферы отображаются в локальной (private) памяти. Параметр fd является файловым дескриптором связанного файла, который должен быть доступен для поиска. Если значение key не равно NULL и совпадает с уже отображённым файлом, то параметр fd игнорируется.

В параметре pagesize указывается размер (в байтах) страниц, в которых располагается файл. В параметре maxcache задаётся максимальное количество страниц файла, которое можно кэшировать в любой момент времени. Это значение не связано с количеством процессов, которые совместно используют буферы файла, но будет наибольшим значением из определённых процессами, совместно использующими файл.

Функция mpool_filter () предназначена для создания прозрачной обработки операций ввода и вывода доступных страниц. Если задана функция pgin , то она вызывается каждый раз, когда данные буфера считываются в память массива из внешнего файла. Если задана функция pgout , то она вызывается каждый раз, когда данные буфера записываются во внешний файл. Обе функции вызываются с указателем pgcookie , номером страницы и указателем на страницу, используемую для чтения или записи.

Параметрами функции mpool_new () являются указатель MPOOL и адрес. Если может быть выделена новая страница, то возвращается указатель на страницу и номер страницы сохраняется по адресу pgnoaddr . В противном случае возвращается NULL и изменяется errno .

Параметрами функции mpool_get () являются указатель и номер страницы. Если страница существует, то возвращается указатель на страницу. Иначе возвращается NULL и меняется значение переменной errno . Параметр flags пока не используется.

Функция mpool_put () открепляет страницу, на которую указывает pgaddr . В pgaddr должен быть указан адрес, который был возвращён mpool_get () или mpool_new () ранее. Значением флага являются любые объединённые следующие значения:
MPOOL_DIRTY

Страница была изменена и должна быть записана обратно в файл.

При успешном выполнении функция mpool_put () возвращает 0, а при ошибках возвращает -1.

Функция mpool_sync () записывает все изменённые страницы, связанные с указателем MPOOL , обратно в файл. При успешном выполнении mpool_sync () возвращает 0 и -1 при ошибке.

Функция mpool_close () освобождает любую выделенную память, связанную с идентификатором массива памяти. Изменённые страницы не записываются обратно в файл. При успешном выполнении mpool_close () возвращает 0 и -1 при ошибке.

ОШИБКИ

При ошибках функция mpool_open () устанавливает значение errno равным какому-либо значению из определённых в malloc (3).

При ошибках функция mpool_get () устанавливает значение errno по следующим причинам:

EINVAL

Запрошенная запись не существует.

При ошибках функции mpool_new () и mpool_get присваивают переменной errno любое значение из определённых в библиотечных функциях read (2), write (2) и malloc (3).

При ошибках функция mpool_sync () устанавливает значение errno равным значению ошибки из определённых в библиотеке для write (2).

При ошибках функция mpool_close () устанавливает значение errno равным значению ошибки из определённых в библиотеке для free (3).

СТАНДАРТЫ

BSD.

СМОТРИТЕ ТАКЖЕ

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

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) aereiae <aereiae@gmail.com>, Alexey <a.chepugov@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, ITriskTI <ITriskTI@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com>, Малянов Евгений Викторович <maljanow@outlook.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .