SQLite C 接口
同步类型标志
#define SQLITE_SYNC_NORMAL 0x00002 #define SQLITE_SYNC_FULL 0x00003 #define SQLITE_SYNC_DATAONLY 0x00010
当 SQLite 调用 sqlite3_io_methods对象的 xSync() 方法时,它使用这些整数值的组合作为第二个参数。
当使用 SQLITE_SYNC_DATAONLY 标志时,意味着同步操作只需要将数据刷新到大容量存储。不需要刷新 inode 信息。如果标志的低四位等于 SQLITE_SYNC_NORMAL,则意味着使用正常的 fsync() 语义。如果低四位等于 SQLITE_SYNC_FULL,这意味着使用 Mac OS X 风格的 fullsync 而不是 fsync()。
不要将 SQLITE_SYNC_NORMAL 和 SQLITE_SYNC_FULL 标志与PRAGMA synchronous =NORMAL 和PRAGMA synchronous =FULL 设置混淆。同步 pragma确定何时调用xSync VFS 方法并在所有平台上统一应用。SQLITE_SYNC_NORMAL 和 SQLITE_SYNC_FULL 标志确定同步操作的活力、严格程度或强度,并且仅在 Mac OSX 上对默认 SQLite 代码产生影响。(第三方 VFS 实现也可能区分 SQLITE_SYNC_NORMAL 和 SQLITE_SYNC_FULL,但在 SQLite 原生支持的操作系统中,只有 Mac OSX 关心差异。)