Spec-Zone.ru › Perl 5.34

Файловый кэш

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНТАКСИС
  • ОПИСАНИЕ
  • ЗАМЕЧАНИЯ
  • ОШИБКИ

ИМЯ

FileCache — удерживает больше файлов открытыми, чем позволяет система

СИНТАКСИС

no strict 'refs';

use FileCache;
# or
use FileCache maxopen => 16;

cacheout $mode, $path;
# or
cacheout $path;
print $path @data;

$fh = cacheout $mode, $path;
# or
$fh = cacheout $path;
print $fh @data;

ОПИСАНИЕ

Функция cacheout гарантирует наличие открытого файла для чтения или записи по указанному пути. Она автоматически закрывает и повторно открывает файлы, если превышено максимальное количество дескрипторов файлов системы или рекомендуемое максимальное значение maxopen.

cacheout EXPR

Форма cacheout с 1 аргументом откроет файл для записи ('>') при первом использовании и добавления ('>>') в последующих.

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

cacheout MODE, EXPR

Форма cacheout с 2 аргументами использует предоставленный режим для первоначального и последующих открытий. Поддерживаются большинство допустимых режимов для 3-аргументной open, а именно: '>', '+>', '<', '<+', '>>', '|-' и '-|' .

Для передачи дополнительных аргументов программе, открытой с помощью '|-' или '-|' , добавьте их в строку команды, как вы бы использовали system EXPR.

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

ЗАМЕЧАНИЯ

Хотя разрешается close файл, управляемый FileCache, не делайте этого, если вы вызываете FileCache::cacheout из пакета, отличного от того, в котором он был импортирован, или с другим модулем, который переопределяет close. Если необходимо, используйте FileCache::cacheout_close.

Хотя FileCache может использоваться с открытием через трубы ('-|' или '|-'), это настоятельно не рекомендуется. Если FileCache посчитает необходимым закрыть и повторно открыть трубу, команда на противоположном конце трубы будет повторно выполнена — результаты выполнения ввода-вывода через FileCache'd трубы вряд ли будут ожидаемыми. Возможность использования FileCache с трубами может быть удалена в будущих релизах.

FileCache не сохраняет текущую позицию в файле, если необходимо закрыть файл. При повторном открытии позиция будет соответствовать той, которая указана в исходном open режиме файла. Это можно рассматривать как ошибку.

Функциональность модуля зависит от символических ссылок, поэтому вещи сломаются при использовании 'use strict', если не указано также 'no strict "refs"'.

ОШИБКИ

sys/param.h содержит определение NOFILE на некоторых системах, поэтому вам может потребоваться самостоятельно установить maxopen.

© 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/FileCache

Spec-Zone.ru

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