Spec-Zone.ru › GNU Fortran 9

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-9.3.0/gfortran/Extended-I_002fO-specifiers.html

Spec-Zone.ru

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