【发布时间】:2015-08-03 00:34:22
【问题描述】:
到目前为止,我正在检查 iostat 是否小于 0,如果找不到名称列表(这真的很难看),则重新打开文件,即:
read(100, nml=nm_tensor, iostat = ios)
if (ios < 0) then
close(100)
open(100, file="input_nm", status='old', action="read", iostat = ios)
end if
如何在读取文件之前检查文件中是否存在名称列表?当名称列表不存在并导致文件结束错误时,是否有更优雅的恢复方式?
【问题讨论】:
-
如果在您关闭并重新打开文件之前名单不存在,为什么之后还要存在?如果你只是想知道你是否通过了名单,你可以在阅读名单之前
REWIND它。 -
在问题的第一部分,我想在完全阅读之前检查名单是否存在。这样我就不会抛出任何错误,这会更加优雅。但是
REWIND正是我在问题的第二部分中寻找的,谢谢! :) -
在读取文件之前,您无法确定文件中是否存在名称列表或其他任何内容。要找出答案,必须阅读它。如果另一个进程正在写入文件,除非文件被共享,否则倒带不会帮助您。如果另一个进程已写入文件,则打开和关闭可能会起作用。
-
当然它必须读取文件,但可能不会影响当前行号。不过,
REWIND对我来说非常好。
标签: fortran