Spec-Zone.ru › Perl 5.28

FileCache

СОДЕРЖАНИЕ

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

ИМЯ

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 откроет файл для записи ('>') при первом использовании и добавления ('>>') в последующих.

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

cacheout MODE, EXPR

Двухаргументная форма cacheout использует заданный режим для начального и последующих открытий. Поддерживаются большинство допустимых режимов для трёх-аргументной 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–2020 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.28.3/FileCache

Spec-Zone.ru

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