c - 使用 IDL 读取二进制文件

标签 c idl-programming-language

我有一个读取二进制数据文件的 IDL 例程。但是,这次,我收到“READU:遇到文件结尾。第 2 单元,文件:data.dat”。

而不是销毁二进制文件并重新创建它。这个问题可以克服吗?我可以使用什么 IDL 代码来读取二进制文件?二进制文件是由 C 函数创建的。

提前致谢。

最佳答案

根据问题,我假设二进制文件具有定义的结构。您可以使用 fstat() 和 eof() 来解决这个问题。例如:

openr, lun, 'file.bin', /get_lun
fs = fstat(lun)

len = fs.size / n_bytes_in_data_structure
for i = 0L, len - 1 do begin
    readu, lun, var
    ...

如果您不知道数据结构的大小,或者想要在读取之前检查是否有足够的字节数,则可以使用 fs.cur_ptr (在调用当然是 fstat())或 eof(lun)

关于c - 使用 IDL 读取二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18157632/

相关文章:

python - "unresolved external symbol"- 在 Windows 上将 Cython 扩展链接到 C 库时出错

c - 读取文件行,将每一行放入一个数组中,然后打印

c - write() 不写入设备

c - 与 C 偏移相关的 NASM

python - 为 ASCII 数据添加名称和分配数据类型

python - 确保用户在使用 BMI 分析器时只输入整数

通过 C 从 IDL 调用 fortran

c++ - 格式化二进制 double 二维矩阵以读入 IDL 的最基本方法是什么?

c - 这个表达式将如何在 C 中求值?

python - 在 Python 中解决奇异值分解 (SVD)