我想知道C是否有类似于python pickle模块的东西,它可以将一些结构化数据转储到磁盘上,然后再加载回来。
我知道我可以逐字节地将我的结构写入磁盘上的文件,然后稍后再读回来,但是使用这种方法还有很多工作要做。例如,如果我有一个链接列表结构,我可以从头到尾遍历列表并在磁盘上写入每个节点的数据。当我从磁盘文件中读回列表时,我必须重建所有链接 在每对节点之间。
请告知是否有更简单的方法。
谢谢堆!
答案 0 :(得分:4)
我担心,那个人强烈不赞成。 C具有基本文件I / O.任何数据结构都取决于您。组成一种格式,将其丢弃,然后将其读入。
可能有库可以做到这一点,但是C本身没有这样做。
答案 1 :(得分:2)
C库函数fread(3)
和fwrite(3)
将读取和写入“数据元素”,但这是非常奇妙的说法“C库将进行一些乘法和pread(2)
或者pwrite(2)
在幕后调用以填充您的数组“。
你可以在struct
上使用它们,但这可能不是一个好主意:
虽然您可以为编写对象创建自己的格式,但您可能希望查看应用程序是否可以使用SQLite3进行对象的磁盘存储。它经过了很好的调试,如果您的应用程序能够很好地适应它的能力,它可能只是票证。 (并且 lot 比编写所有自己的格式代码更容易。)
答案 2 :(得分:-1)
Boost有serialization library,如果用“C”表示“C或C ++”。