write中unformatted格式输出,头尾二进制码的意义。
write函数在输出数据到文件时,使用unformatted格式,会在数据的头部和尾部各附加一个Int32类型的数表示数据的字节长度。但是当输出的数据字节长度大于Int32的最大值时,我发现数据头部有一个Int32,尾部却存在3个Int32长度的字符,无法解读其意义,从而造成fortran输出的文件没有办法用julia读取。在此请教write函数unformatted格式的细节。不要用 unformatted,用stream,这才是真正的二进制,纯粹的二进制、
http://fcode.cn/guide-4-1.html li913 发表于 2022-10-3 15:12
不要用 unformatted,用stream,这才是真正的二进制,纯粹的二进制、
http://fcode.cn/guide-4-1.html ...
我无法改变收到的数据格式,能否告诉我从哪里可以查到unformatted的编码的相关规范呢? 不是给你了吗?
http://fcode.cn/guide-4-1.html
大哥,一年了,您没点开看一看吗? 栗凛铃 发表于 2023-6-4 02:23
我无法改变收到的数据格式,能否告诉我从哪里可以查到unformatted的编码的相关规范呢? ...
这个很老的书有,现在不用了。
这个可能是你需要的
事实上,当数据量过大,他会自动分段输出,你这个情况就是分成3段输出,所以文件中会多出4个4字节数据(数据量小,一段输出,只有首尾两个4字节数据,末尾这个数据其实代表下一段的数据量,应该为0)。
但由于输出大小超过int32范围,表示大小的值就乱了,进而输出的结果就乱了。
总结就是,数据量太大,不能用这种方法输出。 一个记录4GB的数据量,也是有点大~~
页:
[1]