gpt4 book ai didi

python - 使用 Fortran 读取二进制文件 - 如果没有提供输入列表,Fortran 会跳过多少字节?

转载 作者:行者123 更新时间:2023-12-01 03:59:18 26 4
gpt4 key购买 nike

我正在尝试理解一些 Fortran 代码。在某一时刻,有一行读取二进制文件而不指定任何输入列表,仅指定文件本身和用于到达文件末尾的语句标签:

open (unit=unitname,file='name.ext',form='unformatted',status='old',iostat=ios)
...
read (myFile,end=902)

我使用一些 Python 代码读取了该文件,并进行了一些调试,我意识到 Fortran 代码使用此 read 命令恰好跳过了 2484 个字节(是的,我数过!)。不知道这是否有什么特殊原因。如果我没记错的话,Fortran 中的 read 命令会简单地读取整行,而无需任何输入列表,但由于这是一个二进制文件,我想知道接下来会发生什么。这个2484这个神奇数字从何而来?当您在 Fortran 中读取二进制文件而不指定输入列表时会发生什么?

最佳答案

对于为顺序访问而连接的文件,不带输入项的 read 语句会将文件的位置前进一条记录。

对于格式化输入,正如您在问题中注意到的那样,这样的读取会跳过一行:在文件中,一条记录通常是一行。

同样的想法也适用于未格式化的输入,即您所说的二进制文件。这里的记录的含义可能有点超出了这个答案的范围(并且这方面有很多细微差别),但需要注意的关键一点是,记录大小仍然有一个明确定义的概念。

为了完全证明该语句的合理性,您的文件确实已连接以进行未格式化的传输(并且与该 read 语句兼容):

open (unit=unitname,file='name.ext',form='unformatted',status='old',iostat=ios)

如果没有 access= 说明符,则相反,open 模式是顺序的。

关于python - 使用 Fortran 读取二进制文件 - 如果没有提供输入列表,Fortran 会跳过多少字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36899696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com