检查文件是否已经打开
Check whether file has been opened already
我正在写一个文件读取库,需要检查一个文件是否被打开,这样我就可以跳过open语句直接读取。
这在 Fortran 中如何实现?
您可以使用 inquire
:
logical itsopen
inquire(unit=3, opened=itsopen)
if ( itsopen ) then
write(*,*) 'Its open already'
else
open(3,'myfile.txt')
end if
如果想知道与外部文件的连接,可以使用 inquire
语句。有两种形式:按文件查询;按单位查询
表示按单位查询。这测试单元 3 是否连接到 any 文件。然后可以继续使用 name=
和 named=
说明符询问连接文件的名称。1
按文件查询允许提问:给定的文件是否连接到任何单元,如果是,连接到哪个单元?
inquire(file=filename, number=unit)
如果文件未连接则unit
为-1
,否则unit
对应文件连接的单元
或者,根据您想对 open
语句执行的操作,使用已连接的文件 open
不一定是错误的。
[1] 如果文件没有名称,name=
说明符中的变量将变为未定义。在未定义时根据所需的文件名测试此变量是不好的。 named=
说明符允许检测这种情况。
我正在写一个文件读取库,需要检查一个文件是否被打开,这样我就可以跳过open语句直接读取。
这在 Fortran 中如何实现?
您可以使用 inquire
:
logical itsopen
inquire(unit=3, opened=itsopen)
if ( itsopen ) then
write(*,*) 'Its open already'
else
open(3,'myfile.txt')
end if
如果想知道与外部文件的连接,可以使用 inquire
语句。有两种形式:按文件查询;按单位查询
name=
和 named=
说明符询问连接文件的名称。1
按文件查询允许提问:给定的文件是否连接到任何单元,如果是,连接到哪个单元?
inquire(file=filename, number=unit)
如果文件未连接则unit
为-1
,否则unit
对应文件连接的单元
或者,根据您想对 open
语句执行的操作,使用已连接的文件 open
不一定是错误的。
[1] 如果文件没有名称,name=
说明符中的变量将变为未定义。在未定义时根据所需的文件名测试此变量是不好的。 named=
说明符允许检测这种情况。