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 标志意味着反序列化的数据库应该被视为只读的。