next up previous contents
След.: Спецификаторы, описывающие режим ввода/вывода Выше: Связь файла с устройством Пред.: Связь файла с устройством   Содержание

Спецификаторы, описывающие файл

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

ACCESS

Этот спецификатор определяет тип доступа к файлу. Возможные значения -- следующие строковые значения (регистр символов не важен): 'SEQUENTIAL', 'DIRECT', 'STREAM', обозначающие, соответственно, последовательный, прямой и потоковый доступ. Если спецификатор не указан, по умолчанию устанавливается последовательный доступ.

ACTION

Определяет файл, как доступный только для ввода, только для вывода или и того, и другого. Возможные значения -- следующие строковые значения (регистр символов не важен): 'READ', 'WRITE', 'READWRITE'. Если спецификатор не указан, доступ по умолчанию определяется системой.

ASYNCHRONOUS

Определяет возможность асинхронного ввода/вывода. Возможные значения -- 'YES' и 'NO' (по умолчанию). Регистр символов не важен.

ENCODING

Определяет кодировку; возможны значения 'UTF-8' и 'DEFAULT' (по умолчанию). Первое определяет кодировку Unicode согласно стандарту ISO/IEC 10646. Не допускается для систем, не поддерживающих эту кодировку. Значение 'DEFAULT' определяет кодировку по умолчанию для данной системы. Применяется только при открытии форматного файла. Регистр символов не важен.

FILE

Задает имя файла. Ведущие пробелы игнорируются. Имя файла (возможно, с путем) должно быть допустимым для системы. Если этот спецификатор опущен и устройство не подсоединено к файлу, спецификатор STATUS должен иметь значение 'SCRATCH' (соответствует временному файлу, имя и расположение которого не существенно и который удаляется при закрытии). При этом имя файла зависит от системы. Иногда существует нестандартный спецификатор с тем же смыслом: NAME.

FORM

Определяет, открывается ли файл как форматный ('FORMATTED') или неформатный ('UNFORMATTED'). Регистр символов не важен. Значение по умолчанию зависит от типа доступа: неформатный в случае прямого и потокового доступа и форматный для последовательного доступа (который задается по умолчанию). Следовательно, если опущены спецификаторы FORM и ACCESS, файл будет последовательным и форматным (такие чаще всего используются в отладочных целях и для вывода контрольной информации).

NEWUNIT

В качестве значения должна идти переменная целого типа, которой в случае успеха будет присвоено значение логического устройства (в случае ошибки значение переменной не определено). Это облегчает работу с большим количеством файлов.

POSITION

Определяет начальную позицию в последовательном или потоковом файле. Возможные значения 'REWIND', 'APPEND' и 'ASIS' (по умолчанию). При создании нового файла ни на что не влияет. При открытии существующего, соответственно: делает текущей позицией первую в файле; делает текущей позицию перед записью «конец файла», если она есть, или последнюю в противном случае; оставляет позицию прежней, если файл был открыт, и делает ее неопределенной, если файл был закрыт. Регистр символов не важен.

RECL

Имеет числовое значение (целого типа, положительное), определяющее длину записи в файле прямого доступа или максимальную длину записи в файле последовательного доступа. Для потоковых файлов не указывается, для файлов прямого доступа обязателен. Для последовательных файлов может быть опущен, тогда значение по умолчанию определяется системой. Для форматных файлов длина задается в символах, для неформатных -- в единицах хранения.

STATUS

Определяет статус файла. Значения: 'OLD', 'NEW', 'SCRATCH', 'REPLACE' или 'UNKNOWN' (по умолчанию); соответствуют уже существующему файлу (отсутствие файла -- ошибка); новому файлу (наличие файла -- ошибка, если файл успешно создан, его статус меняется на 'OLD'); временному файлу (создается новый файл с определяемым системой именем, который уничтожается при закрытии файла, в том числе неявном при завершении программы), причем это значение несовместимо со спецификацией имени файла; перезаписи файла (если файл не существует, от создается, а существующий файл удаляется и создается новый файл с тем же именем, причем в обоих случаях статус меняется на 'OLD'); файлу, статус которого определяется системой. Регистр символов не важен.

UNIT

Указывает устройство для связи с файлом; спецификатор обязателен, если не использован NEWUNIT, подбирающий свободное устройство сам. Возможные значения: целое число, символ * или имя текстовой скалярной или массивной переменной. Имя может быть опущено и тогда спецификатор идет первым в списке.



Ilya A. Chernov 2012-12-19
X