Характеристики устройства
#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 #define SQLITE_IOCAP_SUBPAGE_READ 0x00008000
Метод 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_IOCAP_SUBPAGE_READ означает, что файл базы данных можно читать блоками, размер которых не кратен размеру страницы и которые не начинаются на границе страницы. Если это свойство отсутствует, SQLite выполняет только чтение и запись полных страниц с выравниванием по границам страниц. Единственное исключение — чтение части первой страницы для доступа к заголовку базы данных.
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/c_iocap_atomic.html