: Öncelikle bu kodu çalıştırdığınızda"Segmentasyon hatası" açık varolan bir dosya Ben basit bir kod çalıştırıyorum
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
, Tamam oldu ve SumData.dat
dosyayı oluşturdu. Tekrar çalıştırdığınızda Ama, hata aşağıdaki açık emrinde durup gösterecektir:
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
Ben SumData.dat
dosyayı silmek ve yeniden çalıştırın, Tamam oldu. Programın neden mevcut dosyaları açamadığını bilen var mı? Bununla
open(unit=10, file="SumData.DAT", status='replace', action='write')
, sen, yazma için açık bir dosyayı çalışıyoruz belirtmek gerekirse onun yerine:
Sorununuz, Fortran Standardının belirli bir sürümüne özgü olmadıkça lütfen jenerik [tag: fortran] etiketini kullanın. Kesinlikle kendinizi 25 yaşındaki bir Fortran versiyonuyla sınırlamak istemezsiniz. –
Veri dosyası nasıl görünüyor? –
Merhaba Vladimir, eğer herhangi bir veri dosyası yoksa, program bir tane oluşturacak ve toplamı sonuçları yazılacak: Toplama = 2 – elpdotaer