2014-03-25 77 views
2

我想知道这是什么说法之间的不同:的Fortran 95:公开声明,状态变量:未知与更换

open(unit=11,file="something.TXT",status="unknown"),这是Fortran语言的默认status(即以前的说法是一样的open(unit=11,file="something.TXT"

及本声明:

open(unit=11,file="something.TXT",status="replace")

我的印象是,unknown状态表现得完全正如我所期望的replace:如果该文件不存在,它会创建它。如果它确实存在,那么它将取而代之。

回答

5

Fortran标准规定,status='unknown'的解释是依赖于处理器的。也就是说,你的印象很不正确。

在我手边的1995标准草案中,这在9.3.4.2节中有解释。

在我手边的2003标准草案中,这在第9.4.5.15节中有解释。

+0

处理器依赖意味着什么?但是无论如何,这意味着为了最大限度地提高可移植性,当打开一个文件时,我总是必须为'status'指定一个值? –

+2

你说得对。处理器依赖意味着你的编译器/运行时可以为你做出选择,如果你想确定'open'语句的行为,你必须指定'status ='的其他选项之一。 –