Основы программирования в Linux
Шрифт:
Если вы хотите просмотреть исходный код или используете дистрибутив, в который не включен встроенный пакет разработки, реализацию GNU можно найти по адресу www.gnu.org/software/gdbm/gdbm.html.
Эта глава написана в расчете на то, что у вас установлена реализация GNU gdbm, укомплектованная библиотеками совместимости с ndbm. Это обычный вариант для дистрибутивов Linux, однако, как упоминалось ранее, возможно, вам придется явно устанавливать пакет библиотеки разработки для того, чтобы компилировать файлы с использованием подпрограмм ndbm.
К сожалению, требуемые библиотеки директив
1. Включите в ваш файл на языке С файл ndbm.h.
2. Включите каталог заголовочного файла /usr/include/gdbm с помощью опции
3. Скомпонуйте программу с библиотекой gdbm, используя опцию
Если программа не работает, обычная альтернатива, принятая в новейших версиях дистрибутивов Ubuntu и SUSE, — устанавливается база данных gdbm, но при необходимости явно запрашивается совместимость с базой данных ndbm, и вы должны компоновать программу сначала с библиотекой совместимости, а затем с основной библиотекой. В этом случае надо выполнить следующие шаги:
1. Вместо файла ndbm.h включите в ваш файл на С файл gdbm-ndbrh.h.
2. Включите каталог заголовочного файла /usr/include/gdbm с помощью опции
3. Скомпонуйте программу с дополнительной библиотекой совместимости gdbm, используя опцию
Загружаемый Makefile и С-файлы dbm установлены с первым вариантом, принятым по умолчанию, но содержат комментарии о том, как их отредактировать, чтобы можно было легко выбрать второй вариант. В оставшейся части главы мы полагаем, что в вашей системе совместимость с ndbm — характеристика, принятая по умолчанию.
Подпрограммы dbm
Как и библиотека curses, обсуждавшаяся нами в главе 6, средство dbm состоит из заголовочного файла и библиотеки, которая должна компоноваться с программой во время компиляции последней. Библиотека называется просто dbm, но поскольку мы обычно применяем в системе Linux реализацию GNU, необходимо компоновать с этой реализацией, используя в строке компиляции опцию
Прежде чем мы попытаемся описать каждую функцию, важно понять чего старается достичь база данных dbm. Когда вы поймете это, гораздо легче будет уяснить, как применять функции dbm.
Основной элемент базы данных dbm — блок данных, предназначенных для хранения, связанный с блоком данных, действующих как ключ для извлечения данных. У всех баз данных dbm должны быть уникальные ключи для каждого хранящегося блока данных. Значение ключа используется как индекс хранящихся данных. Нет ограничений на ключи или данные и не определено никаких ошибок при использовании данных или ключей слишком большого размера. Стандарт допускает реализацию, ограничивающую размер ключа/данных величиной 1023 байта, но, как правило, ограничений не существует, поскольку реализации оказались более гибкими, чем требования, предъявляемые к ним.
Для манипулирования этими блоками как данными в заголовочном файле ndbm.h определен новый тип данных, названный
Здесь
Для ссылки на блок данных при использовании библиотеки dbm вы должны объявить
В некоторых реализациях эти два файла объединены, и создается один новый файл.
Если вы знакомы с базами данных SQL, то заметите, что в случае базы данных dbm не существует структур таблиц или столбцов. Эти структуры не нужны, т.к. dbm не задает фиксированного размера элементов сохраняемых данных и не требует описания внутренней структуры для них. Библиотека dbm работает с блоками неструктурированных двоичных данных.
Функции доступа dbm
Теперь, когда мы рассказали об основах работы библиотеки dbm, можем поподробнее рассмотреть функции. Далее приведены прототипы основных функций dbm.
Младший сын
1. Государи московские
Научно-образовательная:
история
рейтинг книги
12 великих комедий
Вожди Советского Союза
Проза:
классическая проза
рейтинг книги
Гобелены Фьонавара (сборник)
Гобелены Фьонавара
Фантастика:
фэнтези
эпическая фантастика
рейтинг книги
Королева Солнца (сборник)
Фантастика:
фэнтези
рейтинг книги
Неучтенный элемент. Том 1
1. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
рейтинг книги
Империум. Антология к 400-летию Дома Романовых
Фантастика:
фэнтези
социально-философская фантастика
героическая фантастика
научная фантастика
боевая фантастика
альтернативная история
рейтинг книги
"Фантастика 2025-25". Компиляция. Книги 1-24
Фантастика 2025. Компиляция
Фантастика:
боевая фантастика
попаданцы
фэнтези
рейтинг книги
Мясной Бор
Проза:
военная проза
историческая проза
рейтинг книги
Сказки и истории
Проза:
классическая проза
рейтинг книги
Грусть белых ночей
Библиотека "Дружбы народов"
Проза:
советская классическая проза
рейтинг книги
История человечества. Восток
История человечества
Научно-образовательная:
история
рейтинг книги
Князь Андер Арес 2
2. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
рейтинг книги
Театральная Энциклопедия
Справочная литература:
словари
рейтинг книги