Spec-Zone.ru › Perl 5.34

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 устанавливает соединение между переменной Perl hash и файлом в формате ODBM_File;. Вы можете манипулировать данными в файле так, как если бы они находились в переменной Perl hash, но при выходе вашей программы данные останутся в файле, чтобы быть использованы при следующем запуске вашей программы.

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

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

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

  3. Имя файла, который вы хотите связать с hash.

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

    O_RDONLY

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

    O_WRONLY

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

    O_RDWR

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

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

  5. Права по умолчанию, используемые при создании нового файла. Фактические права будут изменены маской пользователя, поэтому вам следует использовать 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.34.0/ODBM_File

Spec-Zone.ru

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