Fortran execute_command_line不返回结果

时间:2017-07-15 09:59:10

标签: fortran

我需要在fortran中创建一个文件,然后读取文件中的数据。

call execute_command_line('pwd > workdir.dat')

open(unit=10, file='workdir.dat', status='replace', IOSTAT=open_stat)
    if (open_stat /= 0) stop "Reading workdir.dat file Error"
    read(10,"(A)") workdir
close(10)

但是,当我尝试打开它时workdir.dat为空,给我严重的错误。系统似乎只在程序结束时将workdir.dat的内容刷新到文件中。如何确保workdir.dat之前可以使用open

1 个答案:

答案 0 :(得分:1)

open语句包含status=replace子句,它实际上告诉运行时系统丢弃文件的内容并重新写入。确切地说,语言标准在status语句中声明了open说明符:

  

如果指定了REPLACE且文件存在,则删除该文件,   将创建一个具有相同名称的新文件,并将状态更改为   OLD。

将条款更改为status=old,这是此案例的正确规范。