用于C的开源嵌入式文件系统(或单文件虚拟文件系统或结构化存储)库

我不确定这样的“一般”名称是什么。 我正在寻找一个库,它为我提供了一种文件格式,可以在不断扩展的单个文件中存储不同类型的二进制数据。

  • 开源,非GPL(LGPL ok)
  • C接口
  • 文件格式是单个文件
  • 使用类似POSIX的文件API中的多个文件(或使用其他API中的多个“blob”)
  • 文件/结构编辑就地完成
  • 可靠的第一,高效的第二

例子包括:

  • 虚拟机的虚拟驱动器
  • whefs
  • HDF
  • CDF
  • 的NetCDF

以上问题:

  • whefs似乎不是很成熟,但最能描述我追求的东西
  • HDF,CDF,NetCDF是可用的(也非常可靠和快速),但它们相当复杂,我不完全相信它们支持不透明的二进制“blob”

编辑:
忘了提及另一个相关的问题:
C / C ++中的简单虚拟文件系统
另一个类似问题:
是否有Windows复合文件的开源替代品?

编辑:
添加了就地编辑的条件。

编辑:
whefs取代: whio_epfs

这看起来像我在寻找: libgsf

仍需要测试其可靠性/性能以及二进制格式的跨平台性。

听起来你在谈论Linux环回设备,它允许你将文件系统上的文件视为一流的块设备(然后继续进行mkfs,mount等)

(你正在瞄准什么样的平台?一个function齐全的Unix类?嵌入式领域的东西,占用空间小吗?)

WxWindows库支持ZIP文件(请参阅http://docs.wxwidgets.org/stable/wx_wxarc.html#wxarc) 。 这也有一个优点,你可以使用ZIP管理器(例如WINZIP)查看内容。

商业替代品是ChillKat( http://www.chilkatsoft.com/

如果担心安全问题,请加密文件内容并破坏ZIP存档中的文件名。

那么BerkeleyDB呢? 它不完全是一个文件系统,但在文件中存储“二进制数据”是非常透明的。 许可似乎也是非常宽容的。