C++ 什么类型的数据结构通常用于保存从固件/压缩映像提取的大量文件信息?

C++ 什么类型的数据结构通常用于保存从固件/压缩映像提取的大量文件信息?,c++,data-structures,extract,firmware,C++,Data Structures,Extract,Firmware,这是我的第一篇帖子,可能是个天真的问题,但我在互联网上找不到我想知道的 我希望从固件文件中提取文件,并希望保留与这些文件相关联的各种类型的信息,例如文件名/标题/文件正文/某些部分/偏移量等,它们是二进制和文本的混合数据类型,并且所有文件都与其他文件属性(如某些文件属性)相链接节/offset/section offset等。某些文件属性信息依赖于其他文件属性信息,因此我不知道如何通过顺序或同时读取和处理每个文件来完成此过程:( 我曾尝试创建一些类来保存这些信息,但我想知道进行此类文件处理的标准

这是我的第一篇帖子,可能是个天真的问题,但我在互联网上找不到我想知道的

我希望从固件文件中提取文件,并希望保留与这些文件相关联的各种类型的信息,例如文件名/标题/文件正文/某些部分/偏移量等,它们是二进制和文本的混合数据类型,并且所有文件都与其他文件属性(如某些文件属性)相链接节/offset/section offset等。某些文件属性信息依赖于其他文件属性信息,因此我不知道如何通过顺序或同时读取和处理每个文件来完成此过程:(


我曾尝试创建一些类来保存这些信息,但我想知道进行此类文件处理的标准是什么。如果有人能在c++

中提供一些建议/链接/文档或示例代码,这将是非常好的。这是一个很难解决的问题,因为它非常通用。优化策略非常依赖于根据数据的性质、数据的结构以及您计划如何处理这些数据

一次只读取一段数据并在运行时将其组装到正确的内存结构中并没有什么根本性的错误。当然,大量的少量读取可能会很慢,并且读取的结构会被大量的代码所掩盖

为磁盘上的每个内聚数据位定义一个纯数据对象(即c中的
struct
,或c++中没有方法的
struct
class
),并一次将其吸进,速度更快,更容易压缩,但您必须处理内存中的打包和尾数匹配问题(我知道你说你在写东西的同一台机器上阅读,但仍然如此)。然而,这不是很“面向对象”

或者你可以定义一组类,它们知道如何从磁盘中提取内容。很好,面向对象,虽然代码可能会掩盖读取的逻辑,但它会以小块的形式进行,对象文档占据了大部分时间

无休止的变化是可能的。

谢谢:)关于这一点的更多信息是文件对象的数量超过2000个,它可以有方法编辑文件类属性,并且一些属性是动态的