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