3.11 GFORTRAN_CONVERT_UNIT—Установить порядок байтов для ввода-вывода без форматирования
Установив переменную GFORTRAN_CONVERT_UNIT, можно изменить представление данных для файлов без форматирования. Синтаксис для переменной GFORTRAN_CONVERT_UNIT следующий:
GFORTRAN_CONVERT_UNIT: mode | mode ';' exception | exception ; mode: 'native' | 'swap' | 'big_endian' | 'little_endian' ; exception: mode ':' unit_list | unit_list ; unit_list: unit_spec | unit_list unit_spec ; unit_spec: INTEGER | INTEGER '-' INTEGER ;
Переменная состоит из необязательного режима по умолчанию, за которым следует список необязательных исключений, разделенных точкой с запятой от предыдущего значения по умолчанию и друг от друга. Каждое исключение состоит из формата и списка единиц, разделенных запятыми. Допустимые значения режимов такие же, как для спецификатора CONVERT:
-
NATIVEИспользовать родной формат. Это значение по умолчанию. -
SWAPПереключать между порядком байтов little-endian и big-endian. -
LITTLE_ENDIANИспользовать формат little-endian для файлов без форматирования. -
BIG_ENDIANИспользовать формат big-endian для файлов без форматирования.
BIG_ENDIAN. Примеры значений для GFORTRAN_CONVERT_UNIT: -
'big_endian'Выполнять весь ввод-вывод без форматирования в режиме big_endian. -
'little_endian;native:10-20,25'Выполнять весь ввод-вывод без форматирования в режиме little_endian, за исключением единиц с 10 по 20 и 25, которые используют родной формат. -
'10-20'Единицы с 10 по 20 используют big-endian, остальные — родной формат.
Установку переменных среды следует выполнять в командной строке или с помощью команды export для оболочек, совместимых с sh, и с помощью setenv для оболочек, совместимых с csh.
Пример для sh:
$ gfortran foo.f90 $ GFORTRAN_CONVERT_UNIT='big_endian;native:10-20' ./a.out
Пример кода для csh:
% gfortran foo.f90 % setenv GFORTRAN_CONVERT_UNIT 'big_endian;native:10-20' % ./a.out
Использование представления, отличного от родного, для данных без форматирования приводит к значительному снижению скорости. Если скорость в этой области важна, лучше использовать этот метод только для данных, которые требуют переносимости.
См. спецификатор CONVERT для альтернативного способа задания представления данных для файлов без форматирования. См. Параметры выполнения для установки представления данных по умолчанию для всей программы. Спецификатор CONVERT переопределяет параметры компиляции -fconvert.
Обратите внимание, что значения, указанные в переменной среды GFORTRAN_CONVERT_UNIT, переопределяют спецификатор CONVERT в операторе открытия. Это позволяет пользователям, у которых нет исходного кода их программы, управлять форматом данных.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/GFORTRAN_005fCONVERT_005fUNIT.html