Spec-Zone.ru › GNU Fortran 8

6.1.30 Расширенные спецификаторы Ввода/Вывода

GNU Fortran поддерживает дополнительные устаревшие спецификаторы Ввода/Вывода CARRIAGECONTROL, READONLY, и SHARE с флагом компиляции -fdec для совместимости.

CARRIAGECONTROL

Спецификатор CARRIAGECONTROL позволяет пользователю управлять параметрами завершения строк между записями вывода для устройства Ввода/Вывода. Спецификатор не имеет смысла для файлов только для чтения. Когда CARRAIGECONTROL указан при открытии устройства для форматированного записи, точная настройка CARRIAGECONTROL определяет, какие символы следует записать между записями вывода. Синтаксис:

OPEN(..., CARRIAGECONTROL=cc)

Где cc — это выражение символьного типа, которое вычисляется в одном из следующих значений:

'LIST' Одна перенос строки между записями (по умолчанию)
'FORTRAN' Устаревшая интерпретация первого символа (см. ниже)
'NONE' Нет разделителя между записями

С CARRIAGECONTROL='FORTRAN', при записи записи первый символ входной записи не записывается, а вместо этого определяет разделитель записей вывода следующим образом:

Ведущая буква Значение Разделительный символ(ы) вывода
'+' Наложение Только возврат каретки
'-' Новая строка Перенос строки и возврат каретки
'0' Пропустить строку Два переноса строки и возврат каретки
'1' Новая страница Формат страницы и возврат каретки
'$' Запрос Перенос строки (без возврата каретки)
CHAR(0) Наложение (без продвижения) Нет
READONLY

Спецификатор READONLY может быть указан при открытии устройства и эквивалентен указанию ACTION='READ', за исключением того, что файл не может быть удалён при закрытии (т.е. CLOSE с STATUS="DELETE"). Синтаксис:

OPEN(..., READONLY)
SHARE

Спецификатор SHARE позволяет установить блокировку на уровне системы для устройства при его открытии для контролируемого доступа из нескольких процессов/потоков. Спецификатор SHARE имеет несколько форм:

OPEN(..., SHARE=sh)
OPEN(..., SHARED)
OPEN(..., NOSHARED)

Где sh в первой форме — это выражение символьного типа, которое вычисляется в значении, представленном в таблице ниже. Последние две формы являются псевдонимами для конкретных значений sh:

Явное представление Короткая форма Значение
SHARE='DENYRW' NOSHARED Эксклюзивная (запись) блокировка
SHARE='DENYNONE' SHARED Участие (чтение) блокировка

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

Поведение блокировки может различаться в зависимости от вашей операционной системы. В системах POSIX блокировка реализуется с помощью fcntl. Обратитесь к руководству вашей операционной системы для получения дополнительных сведений. Блокировка через SHARE= не поддерживается в других системах.

Далее: Устаревшие операторы PARAMETER, Предыдущий: Побитовые логические операторы, Вверх: Расширения, реализованные в GNU Fortran [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.4.0/gfortran/Extended-I_002fO-specifiers.html

Spec-Zone.ru

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