我有一個寫入未格式化的直接訪問文件的Fortran代碼。問題是,大小和文件的內容,當我切換到不同的平臺變化:未格式化的直接訪問文件可移植性
第一平臺是Windows(使用英特爾編譯程序的32位版本 - 2009全能版)
第二個平臺是Linux(使用gfortran編譯器v4.9.0的64位版本的程序)。
不幸的是,在Linux中生成的文件無法從Windows讀取。 LINUX中的文件是5-6倍小。但是,寫入的記錄總數似乎是相同的。我用一個十六進制編輯器打開了這兩個文件,主要區別在於該文件的Windows版本中存在很多零。 有沒有辦法在LINUX中生成完全相同的文件?
如果有幫助,你可以在這裏找到這兩個文件:https://www.dropbox.com/sh/erjlf5sps40in0e/AAC4XEi-p4nnTNzhyai_ZCZVa?dl=0
我打開該文件的命令:OPEN(IAST,FILE=ASTFILR,ACCESS='DIRECT',FORM='UNFORMATTED',RECL=80)
我用命令寫: WRITE(IAST,REC=IRC) (SNGL(PHI(I)-REF), I=IBR,IER)
我用命令讀:READ(IAST,REC=IRC,ERR=999) (PHIS(I), I=1,ISTEP)
其中PHIS
是REAL*4
array
一個相關的例子http://stackoverflow.com/questions/8751185/fortran-無格式文件格式 –
我建議使用流訪問來獲得最大的可移植性。 –
非常感謝你,不幸的是我錯過了那篇文章。還有一個問題:對於一個給定的二進制文件,是否可以找到已寫入的RECL的值? – helios21