Spec-Zone.ru › Perl 5.36

ODBM_File

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНТАКСИС
  • ОПИСАНИЕ
  • ДИАГНОСТИКА
    • odbm store вернул -1, errno 22, ключ "..." в ...
  • БЕЗОПАСНОСТЬ И ПЕРЕНОСИМОСТЬ
  • ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ

ИМЯ

ODBM_File — Привязка к файлам ODBM

СИНТАКСИС

use Fcntl;   # For O_RDWR, O_CREAT, etc.
use ODBM_File;

 # Now read and change the hash
 $h{newkey} = newvalue;
 print $h{oldkey}; 
 ...

 untie %h;

ОПИСАНИЕ

ODBM_File устанавливает связь между перловской переменной типа хэш и файлом в формате ODBM_File;. Вы можете управлять данными в файле так, как будто они хранятся в перловском хэше, но при завершении программы данные сохранятся в файле, чтобы их можно было использовать при следующем запуске.

Используйте ODBM_File с встроенной в Perl функцией tie для установления связи между переменной и файлом. Аргументы для tie должны быть:

  1. Переменная хэш, которую вы хотите привязать.

  2. Строка "ODBM_File". (Это сообщает Perl использовать пакет ODBM_File для выполнения функций хэша.)

  3. Имя файла, который вы хотите привязать к хэшу.

  4. Флаги. Используйте один из:

    O_RDONLY

    Только чтение данных из файла.

    O_WRONLY

    Только запись данных в файл.

    O_RDWR

    Чтение и запись.

    Если вы хотите создать файл, если его не существует, добавьте O_CREAT к любому из этих флагов, как в примере. Если вы опустите O_CREAT и файл ещё не существует, вызов tie завершится ошибкой.

  5. Права доступа по умолчанию, которые будут использоваться, если создается новый файл. Фактические права будут изменены маской umask пользователя, поэтому для этого параметра следует использовать 0666. (См. "umask" в perlfunc.)

ДИАГНОСТИКА

При ошибке вызов tie возвращает неопределенное значение и, вероятно, устанавливает $! для хранения причины, по которой файл не удалось привязать.

odbm store returned -1, errno 22, key "..." at ...

Это предупреждение отображается, когда вы пытаетесь сохранить ключ или значение, длина которого слишком велика. Это означает, что изменения не были записаны в базу данных. См. раздел ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ ниже.

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

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

В современных системах Linux это обычно файлы GDBM, которые не являются переносимыми между платформами.

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

Системы, которые не используют совместимость GDBM для старой поддержки dbm, будут использовать платформенно-специфическую библиотеку, возможно, унаследованную от систем BSD, где использование ненадежного файла может быть или не быть безопасным.

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

ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ

Существует ряд ограничений на размер данных, которые можно хранить в файле ODBM. Самое важное из них — длина ключа плюс длина связанного с ним значения не должна превышать 1008 байтов.

См. "tie" в perlfunc, perldbmfilter, Fcntl

© 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.36.0/ODBM_File

Spec-Zone.ru

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