SQLite C 接口

设备特性

#define SQLITE_IOCAP_ATOMIC                 0x00000001
#define SQLITE_IOCAP_ATOMIC512              0x00000002
#define SQLITE_IOCAP_ATOMIC1K               0x00000004
#define SQLITE_IOCAP_ATOMIC2K               0x00000008
#define SQLITE_IOCAP_ATOMIC4K               0x00000010
#define SQLITE_IOCAP_ATOMIC8K               0x00000020
#define SQLITE_IOCAP_ATOMIC16K              0x00000040
#define SQLITE_IOCAP_ATOMIC32K              0x00000080
#define SQLITE_IOCAP_ATOMIC64K              0x00000100
#define SQLITE_IOCAP_SAFE_APPEND            0x00000200
#define SQLITE_IOCAP_SEQUENTIAL             0x00000400
#define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN  0x00000800
#define SQLITE_IOCAP_POWERSAFE_OVERWRITE    0x00001000
#define SQLITE_IOCAP_IMMUTABLE              0x00002000
#define SQLITE_IOCAP_BATCH_ATOMIC           0x00004000

sqlite3_io_methods对象 的 xDeviceCharacteristics 方法 返回一个整数,它是这些位值的向量,表示保存sqlite3_io_methods 引用的文件的大容量存储设备的 I/O 特性。

SQLITE_IOCAP_ATOMIC 属性意味着任何大小的所有写入都是原子的。SQLITE_IOCAP_ATOMICnnn 值意味着写入大小为 nnn 字节且与 nnn 的整数倍地址对齐的块是原子的。SQLITE_IOCAP_SAFE_APPEND 值意味着当数据附加到文件时,首先附加数据,然后扩展文件的大小,而不是相反。SQLITE_IOCAP_SEQUENTIAL 属性意味着信息写入磁盘的顺序与调用 xWrite() 的顺序相同。SQLITE_IOCAP_POWERSAFE_OVERWRITE 属性意味着在崩溃或断电后重新启动后,在应用程序级别写入的文件中的唯一字节可能已经更改,并且相邻字节,甚至同一扇区内的字节保证不变。SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN 标志表示文件在打开时无法删除。SQLITE_IOCAP_IMMUTABLE 标志表示该文件位于只读介质上,即使具有提升权限的进程也无法更改。

SQLITE_IOCAP_BATCH_ATOMIC 属性意味着当这些写操作被SQLITE_FCNTL_BEGIN_ATOMIC_WRITESQLITE_FCNTL_COMMIT_ATOMIC_WRITE括起来时,底层文件系统支持原子地执行多个写操作。

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