Книга: Разработка приложений в среде Linux. Второе издание
25.2.1. Открытие файла qdbm
25.2.1. Открытие файла qdbm
Библиотечная функция dpopen()
используется для открытия файлов базы данных.
#include <depot.h>
DB * dpopen(const char * filename, int omode, int bnum);
Первый аргумент представляет имя файла, который будет использоваться для базы данных[176]. Аргумент omode
определяет способ доступа к файлу, и должен иметь одно из двух значений: DP_OREADER
и DP_OWRITER
, в зависимости от того, какой вид доступа к базе данных необходим программе — для чтения или для записи. По умолчанию база данных блокируется, чтобы разрешить нескольким программам доступ для чтения или одной программе доступ для записи. Если приложению не нужна блокировка, производимая qdbm
, то DP_ONOLCK
может быть объединен с omode
битовым "ИЛИ".
Когда приложения создают новые базы данных, они должны также использовать битовое "ИЛИ" с DP_CREAT
для отправки qdbm
запроса на создание нового файла, если он еще не был создан. Флаг DP_OTRUNC
сигнализирует о том, что первоначальное содержимое filename
будет удалено и заменено пустой базой данных.
Последний параметр функции dpopen()
, bnum
, сообщает qdbm
о том, сколько сегментов памяти нужно задействовать в хеш-массиве. Чем меньшим будет значение этого параметра, тем меньший размер будет иметь база данных; чем больше будет его значение, тем быстрее она будет работать благодаря сокращению количества конфликтных ситуаций в хеш-памяти. В документации к qdbm
рекомендуется, чтобы это значение составляло от половины до величины, в четыре раза большей от того количества элементов, которые, предположительно, будет иметь база данных[177]. Если вы не уверены, какое следует использовать значение, можно присвоить нулевое значение, которое является значением по умолчанию[178].
Функция dpopen()
возвращает указатель на структуру DEPOT
, который передается остальным функциям Depot
. В случае возникновения ошибки функция dpopen()
возвращает NULL
и устанавливает dpecode
.
- Эффективная работа с временными файлами сортировки
- Единое имя файла параметров InterBase
- Параметры конфигурационного файла InterBase
- 5.12.2 Открытие поименованного канала
- 13. Зарабатываем на своих файлах: файлообменники, загружаеми получаем процент за скачивание
- Листинг 15.11. Код для загрузки файла с Web-сервера
- Запуск Access. Открытие учебной базы данных Борей
- Создание и открытие файла
- Управление файлами занятий
- Часть первая Открытие
- Как изменить имя файла или папки?
- Как создавать комментарии к файлам?