#define SQLITE_SYNC_NORMAL 0x00002 #define SQLITE_SYNC_FULL 0x00003 #define SQLITE_SYNC_DATAONLY 0x00010
當 SQLite 呼叫 sqlite3_io_methods 物件的 xSync() 方法時,它會使用這些整數值的組合作為第二個參數。
當使用 SQLITE_SYNC_DATAONLY 旗標時,表示同步操作只需要將資料寫入到儲存裝置即可。節點資訊不需要寫入。如果旗標的低四位元等於 SQLITE_SYNC_NORMAL,則表示使用一般的 fsync() 語義。如果低四位元等於 SQLITE_SYNC_FULL,則表示使用 Mac OS X 類型的 fullsync,而不是 fsync()。
請勿將 SQLITE_SYNC_NORMAL 和 SQLITE_SYNC_FULL 旗標與 PRAGMA synchronous=NORMAL 和 PRAGMA synchronous=FULL 設定混淆。synchronous pragma 決定何時呼叫 xSync VFS 方法,並且適用於所有平台。SQLITE_SYNC_NORMAL 和 SQLITE_SYNC_FULL 旗標決定同步操作的強度或嚴謹程度,並且只在使用預設 SQLite 程式碼的 Mac OSX 上有所差異。(第三方 VFS 實作也可能區分 SQLITE_SYNC_NORMAL 和 SQLITE_SYNC_FULL,但在 SQLite 原生支援的作業系統中,只有 Mac OSX 會在意這個差異。)