检查文件是否已经打开

Zeu*_*eus 6 fortran file

我正在编写一个文件读取库,需要检查文件是否已打开,以便我可以跳过open语句并直接进入读取状态.

如何在fortran中实现这一目标?

fra*_*lus 8

当想知道有关外部文件的连接时,就有inquire声明.这有两种形式:按文件查询; 单位询问.

汤姆的答案显示单位询问.这将测试单元3是否连接到任何文件.然后,可以继续使用name=named=说明符来询问连接文件的名称.1

通过文件查询允许一个人问:是一个给定文件连接到任何单元,如果是这样,到哪个单元?

inquire(file=filename, number=unit)
Run Code Online (Sandbox Code Playgroud)

如果文件未连接unit则将是-1,否则unit将对应于连接到文件的单元.

或者,根据您要对open语句执行的操作,对于open已连接的文件,它不一定是错误的.


[1] name=如果文件没有名称,则说明符中的变量将变为未定义.在未定义时,针对所需文件名测试此变量是不好的.该named=说明符允许这种情况的检测.


tmd*_*son 5

您可以使用inquire

logical itsopen 
inquire(unit=3, opened=itsopen) 
if ( itsopen ) then
    write(*,*) 'Its open already'
else
    open(3,'myfile.txt')
end if
Run Code Online (Sandbox Code Playgroud)