小巧。快速。可靠。
三选其二。

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 括起来的多个写操作时,原子地执行这些写操作。

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