“打开时默认状态为“未知”

问题描述 投票:3回答:2

[我经常看到人们在没有明确指定OPEN的情况下使用STATUS语句。在Fortran 90和2008标准中,有关STATUS的说法是这样的:

如果指定了UNKNOWN,则状态取决于处理器。如果省略此说明符,则默认值为UNKNOWN。

我的解释是,如果省略STATUS,则可能发生任何事情,具体取决于您所使用的计算机。

但是,通过进行一些测试,似乎默认行为(当省略STATUS时)为REPLACE。但是我找不到gfortran编译器手册(来自https://gcc.gnu.org/onlinedocs/)中记录的此行为。

问题:REPLACE是否确实是流行编译器(如gfortran和ifort)中的默认行为?如果是这样,这是否实际记录在案(但我只是偶然找不到)?

fortran gfortran intel-fortran
2个回答
3
投票

在普通编译器中,UNKNOWN在所有编译器中的行为都非常相似。但这绝对不等于REPLACE!该选择将覆盖您要读取的数据!

IBM XL Fortran手册对此进行了指定:

未知,以连接现有文件,或创建并连接新文件文件。如果文件存在,则以OLD形式连接。如果文件没有存在,它以NEW形式连接。


0
投票

UNKNOWN表示如果尚不存在,请创建该文件,然后将其打开。

© www.soinside.com 2019 - 2024. All rights reserved.