【发布时间】:2016-04-16 05:13:49
【问题描述】:
我有一个 Fortran 代码,它通过在文本文件的最底部添加一些新的实时测量值来实时更新文本文件的内容。该文本文件由流体动力学代码(实时连续运行)和另一个从 matlab 代码构建的可执行文件(执行绘图)使用(只读)。我想在 Fortran 代码中添加一行:仅当文本文件未被任何其他程序打开时才更新文本文件。我尝试使用 INQUIRE:
do
INQUIRE(FILE = filename,OPENED = ISopen)
if (.not.ISopen) then
ADD NEW MEASUREMENTS HERE
exit
endif
endif
enddo
在运行这个 fortran 程序之前,我用 textpad 打开了文件。但是,变量 ISopen 为假。所以我想也许 INQUIRE 仅适用于测试文件是否在 fortran 程序本身中打开。其实如果我在上面sn-p的代码开头加上:
OPEN (33,FILE = filename)
那么 ISopen 为真。然后,我从仅包含以下内容的 fortran 代码创建了一个可执行文件:
OPEN (33,FILE = filename)
pause
CLOSE(33)
然后我运行它并让它处于暂停状态。然后我运行我在上面发布的第一个代码,ISopen 仍然是错误的。知道如何测试文件是否被 Fortran 中的任何其他程序打开?我的操作系统是windows 7。 谢谢
【问题讨论】:
-
我知道 vim 在用户编辑文件时创建了一个交换文件。也许 textpad 有类似的东西?
-
我也这么认为。但是然后“我然后从 fortran 代码创建了一个可执行文件”,但它仍然没有显示为打开