跨平台的二进制文件输入输出C/C++库

10

我已经尝试了几个月去寻找一个小的、平台无关的C或C++库,用于二进制文件的I/O操作,这意味着需要进行字节序转换并使用固定大小类型。

我知道像wxWidgets和Qt这样的大型库具有此功能,并且像Java和C#这样的语言也具有此功能,但我更喜欢使用一个小型库而不是一个庞大的框架。


哦,已经过去七年了... 你找到它了吗? - kbec
可能libuv是一个不错的选择:http://libuv.org/ - hopia
4个回答

3

那么,Google的Protocol Buffers怎么样呢?

这个库包含了C++、Java和Python的绑定。


3

请查看Boost.Serialization

其目标之一是“数据可移植性 - 在一个平台上创建的字节流应该能够在任何其他平台上读取”。

还有链接到提供类似功能的其他库。


10
哇!这是一个非常完美的微小 I/O 库的例子 :) - valdo

1

1
根据我的经验,即使不涉及处理平台相关的内容,使用 fstream 也会变得非常混乱(代码行很长且重复,需要大量强制类型转换)。 - testtesttes
1
不需要将二进制输入进行翻译,这里只需要使用标准库。 - rubenvb
2
因为这是一件非常麻烦的事情,而且即使使用令人恶心的hack将int转换为char也无法在二进制中工作... - MarcusJ

1

对于大多数文件格式的工作,我更喜欢使用sqlite:http://www.sqlite.org/。有趣的是,您可以跨操作系统编程语言以及设备访问相同的数据文件。


SQLite 不适用于存储像体素体积这样类型的数据。 - Петър Петров

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接