Характеристики устройства
#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
Метод xDeviceCharacteristics объекта sqlite3_io_methods возвращает целое число, которое представляет собой вектор этих битовых значений, выражающих характеристики ввода/вывода устройства массовой памяти, на котором находится файл, к которому относится sqlite3_io_methods.
Свойство 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.
См. также списки Объектов, Констант и Функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/c_iocap_atomic.html