#定义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_WRITE和 SQLITE_FCNTL_COMMIT_ATOMIC_WRITE括起来时,基础文件系统支持原子地执行多个写操作。