我有一个FORTRAN程序输出我想重定向到文件。我以前做过这个并使用
$myprog.out>>out.txt 2>&1
由于某种原因,这不起作用。我用另一个简单的测试程序测试它
$myprog.test>>out.txt 2>&1
并且有效
我运行myprog.out并且输出像往常一样进入屏幕,但重定向它似乎失败了!它工作,现在似乎已停止工作。这很奇怪。我评论了一些我不再想要的打印语句,重新编译然后带重定向不起作用。
我的输出显然有不同的内容,但如何诊断它的位置?
答案 0 :(得分:4)
您可能需要刷新输出。请参阅示例this SO topic。怎么做取决于你的编译器我猜。因为只有Fortran 2003 Standard包含flush()语句并且能够确定与stdout / stderr单位对应的数字。
但是在gfortran中(例如)你可以使用flush()内在过程和Unix文件描述符的等价物:对于stdin,UNIT = 5,对于stdr,UNIT = 6,对于stderr,UNIT = 0。
PROGRAM main
PRINT *, "Hello!"
CALL flush(6)
CALL flush(0)
END PROGRAM main
答案 1 :(得分:0)
使用>> ,每次运行时,都会将程序的输出附加到out.txt。
你可以尝试滚动到out.txt的末尾,看看你的输出是否存在?