作者linccit (bean)
站內Fortran
標題[請益] 請教高手,為何輸出二進位資料時檔案會多出位元(window環境)
時間Sat Apr 10 13:08:44 2010
請教各位高手,我將Linux底下執行的程式轉為Window資料輸出時
資料變多
情況如下:
nx=301
ny=201
open(21,file=output,form="unformatted",recl=nx*ny*4)
輸出一個區段,也就是輸出時rec=1
於Linux下輸出時檔案大小為242004(301*201*4)位元組,讀取檔案正常。
但是在Window底下時(用Compaq Visual Fortran 6)時
nx=301
ny=201
open(21,file=output,form="unformatted",recl=nx*ny)--------我知道這裡要改
執行完輸出,檔案卻變成242012(242004+8)位元組
真是見鬼了,我怎麼想也想不出所以然。
當然我也不信邪,將輸出的矩陣改小
但是都的到相同結果
如:
輸出100*100矩陣
100*100*4+8
輸出10*10矩陣
10*10*4+8
都會多出來8位元組
不知道各位專家是否有在使用Compaq Visual Fortran 6所有相同情形的。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.30.46.1
1F:→ blc:指定一下 access="direct"。這可能是編譯器預設的不同。 04/12 12:46
2F:→ blc:+8表示出來的是sequence binary,direct binary不會有。 04/12 12:47
3F:→ linccit:謝謝blc大大的回答,這個問題困擾了我一年多,沒有您的回 04/12 19:25
4F:→ linccit:答,想必會困擾我一生 04/12 19:26
5F:推 yhd:fortran 95 標準中,讀寫binary 可以使用access="stream" 04/15 03:02