Spec-Zone.ru › GNU Fortran 5

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 Использовать формат с большим порядком байтов для файлов без форматирования.
Отсутствие режима для исключения означает 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-5.4.0/gfortran/GFORTRAN_005fCONVERT_005fUNIT.html

Spec-Zone.ru

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