Spec-Zone.ru › GNU Fortran 12

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

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

Spec-Zone.ru

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