Sun Studio 12 Update 1:Fortran 用户指南

3.4.123.2 注:

此选项不适用于使用 STATUS="SCRATCH" 打开的文件。对这些文件执行的 I/O 操作始终依照本机处理器的字节顺序和字节对齐。

如果命令行中没有出现 -xfilebyteorder,则第一个缺省设置为 -xfilebyteorder=native:%all

在此选项中只能声明一次文件名或单元号。

如果在命令行中出现了 -xfilebyteorder,则它必须至少带有 little、big 或 native 规范之一。

将此标志没有显式声明的文件假定为本机文件。例如,如果使用 -xfilebyteorder=little4:zork.out 进行编译,就会将 zork.out 声明为最大数据对齐为 4 字节的 little-endian 32 位 x86 文件。程序中的所有其他文件均是本机文件。

如果为文件指定的字节顺序与本机处理器相同,但指定了不同的对齐,即使没有进行字节交换,也会使用相应的填充。例如,如果针对 64 位 x86 平台使用 -m64 进行编译,并指定了 -xfilebyteorder=little4:filename,就会出现这种情况。

大端字节序和小端字节序平台之间共享的数据记录中的声明类型必须具有相同的大小。例如,使用 -xtypemap=integer:64,real:64,double:64 编译的 x86 可执行文件不能读取使用 -xtypemap=integer:64,real:64,double:128 编译的 SPARC 可执行文件生成的文件,因为二者的缺省双精度数据类型具有不同的大小。(不过请注意,从 Sun Studio 12 Update 1 发行版开始,x64 处理器上接受 double:128。)

如果在一个平台上使用了更改 VAX 结构内的组件对齐方式的选项(如 —vax=struct_align)或更改派生类型内的组件对齐方式的选项(如 —aligncommon—dalign),则在共享同一无格式数据文件(其内容受对齐选项影响)的其他平台上也要使用同一对齐选项。

如果使用整个 UNION/MAP 数据对象对指定为非本机的文件执行 I/O 操作,则会导致运行时 I/O 错误。只能使用 MAP 的个别成员(而不能使用包含 UNION/MAP 的整个 VAX 记录)对非本机文件执行 I/O 操作。