Spec-Zone.ru › Perl 5.38

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

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

Spec-Zone.ru

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