【问题标题】:C/C++ library for platform-independent binary file I/O用于独立于平台的二进制文件 I/O 的 C/C++ 库
【发布时间】:2011-05-16 19:40:39
【问题描述】:

几个月来,我一直在努力寻找一个小型 C 或 C++ 库,用于独立于平台的二进制文件 I/O,这意味着字节序交换和固定大小的类型。

我知道 wxWidgets 和 Qt 等大型库都有它们,Java 和 C# 等语言也有它们,但我更喜欢使用小型库而不是大型框架。

【问题讨论】:

  • 哦,7年多过去了……你找到了吗?
  • 可能 libuv 是个不错的选择:libuv.org

标签: c++ file binary io


【解决方案1】:

谷歌Protocol Buffers怎么样?

该库包括 C++、Java 和 Python 的绑定。

【讨论】:

    【解决方案2】:

    看看Boost.Serialization

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

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

    【讨论】:

    • 哇!一个用于 I/O 的 tiny 库的完美示例 :)
    【解决方案3】:

    为什么不直接使用与所有 C++ 编译器一起打包的 fstream。您只需设置 ios::binary 标志并充分使用 sizeof 以使其独立于操作系统。例如:http://courses.cs.vt.edu/~cs2604/fall02/binio.htmlhttp://www.codersource.net/c/c-tutorial-on-file-operations/c-file-i-o-binary-files-using-fstream.aspx

    【讨论】:

    • 根据我的经验,使用 fstream 会变得非常混乱(冗长且重复的行,大量转换),即使不处理依赖于平台的内容。
    • 无需翻译二进制输入 IMO。只需在此处访问 std 库即可。
    • 因为它是一个巨大的痛苦,甚至不能使用二进制文件而不求助于像将 int 转换为 char 这样的恶心黑客......
    【解决方案4】:

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

    【讨论】:

    • SQLite 对于存储体素体积等数据类型没有用处
    猜你喜欢
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多