5.1.31 Расширенные спецификаторы ввода/вывода
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=не поддерживается в других системах.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/Extended-I_002fO-specifiers.html