Small. Fast. Reliable.
Choose any three.

SQLite C接口

设备特征

#定义SQLITE_IOCAP_ATOMIC 0x00000001
#定义SQLITE_IOCAP_ATOMIC512 0x00000002
#定义SQLITE_IOCAP_ATOMIC1K 0x00000004
#定义SQLITE_IOCAP_ATOMIC2K 0x00000008
#定义SQLITE_IOCAP_ATOMIC4K 0x00000010
#定义SQLITE_IOCAP_ATOMIC8K 0x00000020
#定义SQLITE_IOCAP_ATOMIC16K 0x00000040
#定义SQLITE_IOCAP_ATOMIC32K 0x00000080
#定义SQLITE_IOCAP_ATOMIC64K 0x00000100
#定义SQLITE_IOCAP_SAFE_APPEND 0x00000200
#定义SQLITE_IOCAP_SEQUENTIAL 0x00000400
#定义SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN 0x00000800
#定义SQLITE_IOCAP_POWERSAFE_OVERWRITE 0x00001000
#定义SQLITE_IOCAP_IMMUTABLE 0x00002000
#定义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括起来时,基础文件系统支持原子地执行多个写操作。

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