查询文件的状态INQUIRE:
在使用open打开文件的前后,都可以通过inquire命令来查询文件目前的情况,inquire命令中的各个字段和第一小节中open的字段很类似。
example: !检查某个程序是否存在
program ex0903
implicit none
character(len=20) :: filename = "ex0903.f90"
logical alive
inquire(file=filename, exist=alive)
if(alive) then
write (*, *) filename, " exist."
else
write (*, *) filename, "doesn't exist."
end if
stop
edn program ex0903
详细介绍inquire的使用方法:
INQUIRE(UNIT=number, FILE=filename, IOSTAT=stat, ERR=label, EXIST=exist, OPENED=opened, NUMBER=number, NAMED=named, ACCESS=access, SEQUENTIAL=sequential, DIRECT=direct, FORM=form, FORMATTED=formatted, UNFORMATTED=unformatted, RECL=recl)
UNIT=number 文件代号
FILE=filename 文件名
IOSTAT=stat 查询文件读取情况,会设置一个整数给后面的变量:
stat>0 文件读取操作错误
stat=0 文件读取操作正常
stat<0 文件终了
ERR=errlabel 发生错误时会转移到复制的代码行继续执行程序。
EXIST=exist 检查文件是否存在,返回布尔变量,真表示存在,假值表示不存在。
OPEND=opened 检查文件是否用已经用open打开,返回布尔变量,真表示已经打开,假表示尚未打开。
NUMBER=number 用文件名来查询这个文件所给定的代码。
NAMED=named 查询文件是否取了名字,也就是检查文件是否为临时保存盘,返回值为逻辑数。
ACCESS=access 检查文件的读取格式,返回一个字符串,可以是:
'SEQUENTIAL' 代表文件使用顺序读取格式
'DIRECT' 代表文件使用直接读取格式
'UNDEFINED' 代表没有定义
SEQUENTIAL=sequential 查看文件是否使用顺序格式,会返回一个字符串,可以是:
'YES' 代表文件是顺序读取文件
'NO' 代表文件不是顺序读取文件
'UNKNOWN' 代表不知道
DIRECT=direct 查看文件是否使用直接格式,会返回一个字符串,可以是:
'YES' 文件是直接读取文件
'NO' 文件是非直接读取文件
'UNKNOWN' 代表不知道
FORM=form 查看文件的保存方法,返回字符串,可以是:
'FORMATTED' 打开的是文本文件
'UNFORMATTED' 打开的是二进制文件
'UNDEFINED' 没有定义
FORMATTED=fmt 查看文件是否是文本文件,返回字符串,可以是:
'YES' 本文件是文本文件
'NO' 本文件非文本文件
'UNDEFINED' 无法判断
UNFORMATTED=fmt 查看文件是否是二进制文件,返回字符串,可以是:
'YES' 本文件是二进制文件
'NO' 本文件非二进制文件
'UNKNOWN' 无法判断
RECL=length 返回open文件时recl栏的设置值。
NEXTREC=nr 返回下一次文件读写的位置。
BLANK=blank 返回值是字符串,用来查看open文件时的blank参数所给定的字符串值。
以下是fortran 90的添加功能:
POSITION=position 返回打开文件时position字段所给定的字符串, 可能是'REWIND',
'APPEND', 'ASIS', 'UNDEFINED'
ACTION=action 返回打开文件时action 字段所赋值的字符串,可能是'READ', 'WRITE',
'READWRITE'。
READ=read 返回字符串,检查文件是否为只读文件:
'YES' 文件是只读的
'NO' 文件不是只读的
'UNKNOWN' 无法判断
WRITE=write 返回一个字符串,检查文件是否可写入:
'YES' 文件可以写入
'NO' 文件不可以写入
'UNKNOWN' 无法判定
READWRITE=readwrite 返回一个字符串,检查文件是否可以同时读及写:
'YES' 文件可以同时读写
'NO' 文件不可以同时读写
'UNKNOWN' 无法判定
DELIM=delim 返回打开文件时,DELIM字段所设置的字符串,返回值可以是:
'APOSTROPHE', 'QUOTE', 'NONE', 'UNDEFINED'
PAD=pad 返回打开文件时PAD字段所设置的字符串,返回值可以是:'YES', 'NO'。
其他文件运行命令:
BACKSPACE(UNIT=number, ERR=errlabel, IOSTAT=iostat) 把文件读写位置退回一步。
ENDFILE(UNNIT=number, ERR=errlabel, IOSTAT=iostat)使用这个命令会把目前文件的读写位置变成文件的结尾。
REWIND(UNIT=number, ERR=errlabel, IOSTAT=iostat)把文件的读写位置倒回到文件开头。
CLOSE(UNIT=number, STATUS=string, ERR=errlabel, IOSTAT=) 把文件关闭,不要进行读写操作。
STAT='KEEP' 会在文件关闭后,保留这个文件。是默认状态。
STAT='DELETE' 在文件关闭后,消除这个文件。 |