如何使用dlang读取二进制文件数据

how to read binary file data using dlang

我正在尝试从二进制文件中的特定位置读取结构数据。 发现我可以使用 import std.stdio 及其文件,但是我似乎发现的都是关于字符串处理的。

我在二进制文件上用 C 代码编写了数据,这些文件由几个不同的结构组成,据我所知,它们都在一个单行文件中。为了找到我需要的特定结构,就像在旧 c 中一样,

  1. 打开文件进行读取....(二进制读取??)
  2. 使用 sizeof 并移动到要读取的结构数据的起始位置
  3. 将数据(struct.sizeof数据)读入receivingbuffer并
  4. 关闭文件

Documentation for std.stdio.File # read 谈论读取整个或最大尺寸但找不到如何读取如下 c 代码行?

fseek(filehandle, sizeof(firstStructData), SEEK_SET));
read(filehandle, (char *)nextReceivingBuffer, sizeof(nextReceivingBuffer))

有什么想法或提示吗?

尝试File.seek and File.rawRead。它们的工作方式与 C 语言类似,但 rawRead 根据您交给它的输出缓冲区的大小确定读取计数。