小巧。快速。可靠。
三选其二。

SQLite C 接口

sqlite3_deserialize() 的标志

#define SQLITE_DESERIALIZE_FREEONCLOSE 1 /* Call sqlite3_free() on close */
#define SQLITE_DESERIALIZE_RESIZEABLE  2 /* Resize using sqlite3_realloc64() */
#define SQLITE_DESERIALIZE_READONLY    4 /* Database is read-only */

以下是 sqlite3_deserialize(D,S,P,N,M,F) 接口中第 6 个参数(F 参数)允许的值。

SQLITE_DESERIALIZE_FREEONCLOSE 表示 P 参数中的数据库序列化存储在从 sqlite3_malloc64() 获得的内存中,并且 SQLite 应该拥有此内存并在使用完后自动释放它。如果没有此标志,则调用者负责释放任何动态分配的内存。

SQLITE_DESERIALIZE_RESIZEABLE 标志表示 SQLite 允许使用对 sqlite3_realloc64() 的调用来增加数据库的大小。只有在也使用 SQLITE_DESERIALIZE_FREEONCLOSE 时,才应使用此标志。如果没有此标志,则反序列化的数据库的大小不能超过 M 参数指定的大小。

SQLITE_DESERIALIZE_READONLY 标志表示反序列化的数据库应被视为只读。

另请参见 对象常量函数 列表。