首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Synchronization Type Flags

代码语言:javascript
复制
#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设置混淆。同步杂注决定何时发生对xSync VFS方法的调用,并且统一应用于所有平台。SQLITE_SYNC_NORMAL和SQLITE_SYNC_FULL标志决定了同步操作的精力或严格程度,以及对Mac OSX默认SQLite代码的影响。(第三方VFS实现也可能区分SQLITE_SYNC_NORMAL和SQLITE_SYNC_FULL,但在SQLite本机支持的操作系统中,只有Mac OSX关心这种区别。)

扫码关注腾讯云开发者

领取腾讯云代金券