當我運行一個簡單的代碼:「段錯誤」,當打開現有的文件
program summation
implicit none
integer :: sum, a, b
print*, "This program performs summations. Enter 0 to stop."
!open(unit=10, file="SumData.DAT", status='replace', action='write',iostat=b, err=100)
!100 continue
!write(*,*) b
open(unit=10, file="SumData.DAT", status='replace', action='write')
sum = 0
do
print*, "Add:"
read*, a
if (a == 0) then
exit
else
sum = sum + a
end if
write(10,*) a
end do
print*, "Summation =", sum
write(10,*) "Summation =", sum
close(10)
end
當我先運行此代碼,也沒關係,它產生的SumData.dat
文件。但是當我再次運行它,它會停在打開命令,並顯示以下錯誤:
Program received signal SIGSEGV: Segmentation fault - invalid memory reference. Backtrace for this error: #0 ffffffffffffffff #1 ffffffffffffffff #2 ffffffffffffffff #3 ffffffffffffffff #4 ffffffffffffffff #5 ffffffffffffffff #6 ffffffffffffffff #7 ffffffffffffffff #8 ffffffffffffffff #9 ffffffffffffffff #10 ffffffffffffffff #11 ffffffffffffffff #12 ffffffffffffffff #13 ffffffffffffffff #14 ffffffffffffffff #15 ffffffffffffffff #16 ffffffffffffffff #17 ffffffffffffffff #18 ffffffffffffffff
如果我刪除了SumData.dat
文件並再次運行它,它是確定的。有誰知道爲什麼程序無法打開現有的文件?
請使用通用的[tag:fortran]標籤,除非您的問題特定於特定版本的Fortran標準。您當然不想限制自己使用25年前的Fortran版本。 –
數據文件的外觀如何? –
嗨弗拉基米爾,如果沒有數據文件,程序將創建一個,並將求和結果寫入如下: Summation = 2 – elpdotaer