Logo GBNhost.com — скидка на VPS сервера 50 процентов! Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

Сверхбыстрый хостинг от 69 р./мес., VPS от 299 р./мес.

Бесплатно: администрирование + ISPmanager + DDoS защита + SSL + 7 дней тестовый период

Скидка 50% на первый месяц VPS и хостинга по промокоду CITFORUM

Ваш идеальный сервер от 4$/мес. Все включено:

- Администрирование и решение проблем 24/7
- Перенос проектов без рисков и простоев.
- Круглосуточный мониторинг доступности сайтов.
- Защита от DDoS атак.

dbminit, fetch, store, delete, firstkey, nextkey

НАЗВАНИЕ
dbminit, fetch, store, delete, firstkey, nextkey - Подпрограммы БД

СИНТАКСИС


	typedef struct {

	        char *dptr;

	        int dsize;

	} datum;

	 

	dbminit(file)

	char *file;



	datum fetch(key)

	datum key;



	store(key,content)

	datum key,content;



	delete(key)

	datum key;



	datum firstkey()



	datum nextkey(key)

	datum key;



	dbmclose()

ОПИСАНИЕ
Все указанные функции работают в базе данных с парами значений "ключ-содержимое". Они способны манипулировать с очень большими (в миллиард блоков) базами данных и адресоваться к ключевым данным за одно или два обращения к файловой системе. Доступ к функциям открывается через опцию загрузчика -ldbm. "Ключи" (keys) и "содержимое" (contents) описываются типом datum. Этому типу соответствует строка размером dsize, на которую указывает указатель dptr. Допустимы как строки в формате ASCII, так и произвольные двоичные данные. База данных располагается в двух файлах. Один файл представляет собой каталог с битовым массивом и расширением .dir. Вся остальная информация содержится во втором файле с расширением .pag. Для того, чтобы база данных стала доступной, она должна быть открыта функцией dbminit. К моменту вызова этой функции файлы с расширениями .dir и .pag должны существовать. (Пустая БД создается с пустыми файлами.)

После открытия к данным, хранящимся под ключом, открывается доступ по fetch; запоминаются под ключом они с помощью store. Ключ (и связанное с ним содержимое) удаляется подпрограммой delete. Разрешен простой перебор всех ключей, хранящихся в базе, в практически произвольном порядке с помощью функций firstkey и nextkey. Функция firstkey возвращает первый ключ в БД. Для любого ключа в БД функция nextkey возвращает следующее по порядку значение ключа. Программа перебора ключей в БД:


	for (key=firstkey(); key.dptr!=NULL; key=nextkey(key))

Закрытие БД производится функцией dbmclose. БД должна закрываться перед открытием новой.

ДИАГНОСТИКА
Все функции, возвращающие значения типа int, сообщают об ошибках отрицательными значениями. Код возврата, равный 0, означает успех. Подпрограммы, возвращающие значения типа datum, сообщают об ошибках нулевым значением указателя dptr.

ЗАМЕЧАНИЯ
Файл .pag может содержать пустоты, поэтому его видимый размер почти в четыре раза превышает фактический. В предыдущих системах для этих пустот создавались реальные файловые блоки. Такие файлы не копируются обычными средствами (cp, cat, tp, tar, ar) без заполнения пустот. Указатели dptr, возвращаемые этими подпрограммами, адресуют к статической памяти, которая изменяется при последующих обращениях. Сумма длин значений в паре "ключ/содержимое" не должна превышать размер внутреннего блока (1024 байта). Более того, все пары "ключ/содержимое", связанные в цепочку, должны помещаться в одном блоке. Функция store возвращает ошибку в том случае, если дисковый блок заполнен неделимыми данными.

Функция delete физически не освобождает файловое пространство, хотя и делает его доступным для последующего использования. Порядок расположения ключей, выдаваемых функциями firskey и nextkey, определяется алгоритмом хеширования, и ничем иным.

Бесплатная регистрация

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...