2013-08-27 54 views
2

我正在編寫一個fortran程序,我想知道是否可以從放置程序的同一目錄打開文件。Fortran從當前目錄打開

我使用的是Ubuntu 12.04 BTW。例如,如果我將編譯好的程序放在「/ home/username/foo」目錄下,我希望程序打開文件「/home/username/foo/bar.txt」並寫下「Hello! 「在裏面。

我最小的工作示例如下:

program main 

implicit none 

open(unit=20,file="bar.txt",action="write") 

WRITE(20,*) "Hello!" 

close(20) 

end program main 

當我編譯使用它打開,文件「/home/username/bar.txt」無論在哪裏我把程序文件中寫道gfortran。另一方面,當我編譯Windows(使用mingw)製作一個.exe文件並在windows中執行它時,它會執行我想要的操作,它將打開放置可執行文件的文件。

我剛發現如果我通過雙擊執行程序,它會打開程序目錄中的文件,但是當我從終端執行它時,它會在「/ home/username /」打開,所以也許更多的是關於我從終端發送命令的方式,目前我正在通過以下命令「/ home/username/foo/myprogram」來執行。

+0

刪除txt文件,cd到不同的目錄,使用pwd查找您的位置,運行您的程序並告訴我們會發生什麼情況。 – cup

回答

1

我也使用gfortran 4.6.3運行Ubuntu 12.04,但我沒有遇到這種情況。在哪裏,我把我的可執行文件,執行後有bar.txt

也就是說,如果你想在一個特定位置的文件,然後聲明字符串如下:

character(26) :: filename 
filename="/home/username/foo/bar.txt" 

,然後打開該文件作爲

open(unit=20, file=filename) 

,你是家庭免費。

編輯

我只注意到你的編輯。我想象你打開終端,不要cd到可執行文件的位置,但運行命令執行。這確實會導致您始終在當前所在的任何文件夾中打開文件。

+0

謝謝,爲了快速和完整的答案,我cd到的位置,它的工作。 –