Spec-Zone.ru › Perl 5.34

GDBM_File

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНТАКСИС
  • ОПИСАНИЕ
  • СТАТИЧЕСКИЕ МЕТОДЫ
    • GDBM_version
  • МЕТОДЫ
    • close
    • errno
    • syserrno
    • strerror
    • clear_error
    • needs_recovery
    • reorganize
    • sync
    • count
    • flags
    • dbname
    • cache_size
    • block_size
    • sync_mode
    • centfree
    • coalesce
    • mmap
    • mmapsize
    • recover
  • ДОСТУПНОСТЬ
  • БЕЗОПАСНОСТЬ И ПЕРЕНОСИМОСТЬ
  • СМОТРИТЕ ТАКЖЕ

ИМЯ

GDBM_File - Perl5 доступ к библиотеке gdbm.

СИНТАКСИС

use GDBM_File;
[$db =] tie %hash, 'GDBM_File', $filename, &GDBM_WRCREAT, 0640;
# Use the %hash array.

$e = $db->errno;
$e = $db->syserrno;
$str = $db->strerror;
$bool = $db->needs_recovery;

$db->clear_error;

$db->reorganize;
$db->sync;

$n = $db->count;

$n = $db->flags;

$str = $db->dbname;

$db->cache_size;
$db->cache_size($newsize);

$n = $db->block_size;

$bool = $db->sync_mode;
$db->sync_mode($bool);

$bool = $db->centfree;
$db->centfree($bool);

$bool = $db->coalesce;
$db->coalesce($bool);

$bool = $db->mmap;

$size = $db->mmapsize;
$db->mmapsize($newsize);

$db->recover(%args);

untie %hash ;

ОПИСАНИЕ

GDBM_File - это модуль, который позволяет Perl-программам использовать возможности библиотеки GNU gdbm. Если вы планируете использовать этот модуль, у вас должен быть под рукой справочный лист по gdbm.

Большинство функций libgdbm.a доступны через интерфейс GDBM_File.

В отличие от встроенных хешей Perl, небезопасно delete текущий элемент из связанного хеша GDBM_File во время итерации по нему с помощью each. Это ограничение библиотеки gdbm.

СТАТИЧЕСКИЕ МЕТОДЫ

GDBM_version

$str = GDBM_File->GDBM_version;
@ar = GDBM_File->GDBM_version;

Возвращает номер версии базовой библиотеки libgdbm. В скалярном контексте возвращает строковое представление версии библиотеки:

MINOR.MAJOR[.PATCH][ (GUESS)]

где MINOR, MAJOR и PATCH - номера версии, а GUESS - уровень угадывания (см. ниже).

В контексте списка возвращает список:

( MINOR, MAJOR, PATCH [, GUESS] )

Компонент GUESS присутствует только если версия libgdbm 1.8.3 или более ранние. Это потому, что более ранние версии libgdbm не включали информацию о своей версии, и модуль GDBM_File должен реализовать определенные угадывания, чтобы определить её. GUESS - это текстовое описание в скалярном контексте и положительное число, указывающее на то, насколько грубый угадывание в контексте списка. Возможные значения:

1 - точное угадывание

Гарантированы правильность основных и второстепенных номеров версии. Вероятнее всего, фактический номер патча угадан верно, но может быть на 1-2 меньше, чем указано.

2 - приблизительное

Гарантированы правильность основных и второстепенных номеров версии. Номер патча установлен на верхнюю границу.

3 - приблизительное угадывание

Гарантируется, что версия не новее MAJOR.MINOR.

МЕТОДЫ

close

$db->close;

Закрывает базу данных. Вам не рекомендуется использовать этот метод напрямую. Пожалуйста, используйте untie вместо этого.

errno

$db->errno

Возвращает последний статус ошибки, связанный с этой базой данных.

syserrno

$db->syserrno

Возвращает последний системный статус ошибки (переменная C errno ), связанный с этой базой данных.

strerror

$db->strerror

Возвращает текстовое описание последней ошибки, произошедшей в этой базе данных.

clear_error

$db->clear_error

Очистить статус ошибки.

needs_recovery

$db->needs_recovery

Возвращает true, если база данных нуждается в восстановлении.

reorganize

$db->reorganize;

Перестраивает базу данных.

sync

$db->sync;

Синхронизирует последние изменения в базе данных с её копии на диске.

count

$n = $db->count;

Возвращает количество ключей в базе данных.

flags

$db->flags;

Возвращает флаги, переданные в качестве четвёртого аргумента в tie.

dbname

$db->dbname;

Возвращает имя базы данных (т.е. третий аргумент в tie).

cache_size

$db->cache_size;
$db->cache_size($newsize);

Возвращает размер внутреннего кэша GDBM для данной базы данных.

Вызов с аргументом устанавливает размер на $newsize.

block_size

$db->block_size;

Возвращает размер блока базы данных.

sync_mode

$db->sync_mode;
$db->sync_mode($bool);

Возвращает состояние автоматического режима синхронизации. Вызов с аргументом включает или выключает режим синхронизации в зависимости от того, является ли $bool true или false.

Когда режим синхронизации включён (true), все изменения в базе данных немедленно записываются на диск. Это гарантирует согласованность базы данных в случае непредвиденных ошибок (например, сбои питания), но за счёт значительного замедления работы.

Режим синхронизации по умолчанию выключен.

centfree

$db->centfree;
$db->centfree($bool);

Возвращает состояние центрального пула свободных блоков (0 - выключено, 1 - включено).

С аргументом меняет его состояние.

По умолчанию, центральный пул свободных блоков выключен.

coalesce

$db->coalesce;
$db->coalesce($bool);

mmap

$db->mmap;

Возвращает true, если включено отображение в памяти.

Этот метод вернёт ошибку, если библиотека libgdbm скомпилирована без поддержки отображения в памяти.

mmapsize

$db->mmapsize;
$db->mmapsize($newsize);

Если отображение в памяти включено, возвращает размер отображения в памяти. С аргументом устанавливает размер на $newsize.

Этот метод вернёт ошибку, если библиотека libgdbm скомпилирована без поддержки отображения в памяти.

recover

$db->recover(%args);

Восстанавливает данные из повреждённой базы данных. %args необязательно и может содержать следующие ключи:

err => sub { ... }

Ссылка на код для подробного отчета об ошибках. При возникновении ошибки recover вызовет этот подпрограмму с одним аргументом - описанием ошибки.

backup => \$str

Создаёт резервную копию базы данных перед восстановлением и возвращает её имя файла в $str.

max_failed_keys => $n

Максимальное допустимое количество неисправных ключей. Если фактическое количество станет равно $n, recover прервётся и вернёт ошибку.

max_failed_buckets => $n

Максимальное допустимое количество неисправных ведер. Если фактическое количество станет равно $n, recover прервётся и вернёт ошибку.

max_failures => $n

Максимальное допустимое количество ошибок во время восстановления.

stat => \%hash

Возвращает статистику восстановления в %hash. После возврата будут присутствовать следующие ключи:

recovered_keys

Количество успешно восстановленных ключей.

recovered_buckets

Количество успешно восстановленных ведер.

failed_keys

Количество ключей, которые не удалось восстановить.

failed_buckets

Количество ведер, которые не удалось восстановить.

ДОСТУПНОСТЬ

gdbm доступен из любого архива GNU. Главный сайт ftp.gnu.org, но настоятельно рекомендуется использовать один из многочисленных зеркал. Список зеркал можно получить по адресу http://www.gnu.org/order/ftp.html.

БЕЗОПАСНОСТЬ И ПЕРЕНОСИМОСТЬ

Не принимайте файлы GDBM от ненадежных источников.

Файлы GDBM не переносимы между платформами.

Документация GDBM не подразумевает, что файлы из ненадежных источников могут быть безопасно использованы с libgdbm.

Злонамеренно созданный файл может привести к зависанию perl или даже раскрытию уязвимости безопасности.

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

perl(1), DB_File(3), perldbmfilter, gdbm(3), https://www.gnu.org.ua/software/gdbm/manual.html.

© 1993–2021 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.34.0/GDBM_File

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API