.Dd January 24, 2024 .Dt SQLITE_IOCAP_ATOMIC 3 .Os .Sh NAME .Nm SQLITE_IOCAP_ATOMIC , .Nm SQLITE_IOCAP_ATOMIC512 , .Nm SQLITE_IOCAP_ATOMIC1K , .Nm SQLITE_IOCAP_ATOMIC2K , .Nm SQLITE_IOCAP_ATOMIC4K , .Nm SQLITE_IOCAP_ATOMIC8K , .Nm SQLITE_IOCAP_ATOMIC16K , .Nm SQLITE_IOCAP_ATOMIC32K , .Nm SQLITE_IOCAP_ATOMIC64K , .Nm SQLITE_IOCAP_SAFE_APPEND , .Nm SQLITE_IOCAP_SEQUENTIAL , .Nm SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN , .Nm SQLITE_IOCAP_POWERSAFE_OVERWRITE , .Nm SQLITE_IOCAP_IMMUTABLE , .Nm SQLITE_IOCAP_BATCH_ATOMIC .Nd device characteristics .Sh SYNOPSIS .In sqlite3.h .Fd #define SQLITE_IOCAP_ATOMIC .Fd #define SQLITE_IOCAP_ATOMIC512 .Fd #define SQLITE_IOCAP_ATOMIC1K .Fd #define SQLITE_IOCAP_ATOMIC2K .Fd #define SQLITE_IOCAP_ATOMIC4K .Fd #define SQLITE_IOCAP_ATOMIC8K .Fd #define SQLITE_IOCAP_ATOMIC16K .Fd #define SQLITE_IOCAP_ATOMIC32K .Fd #define SQLITE_IOCAP_ATOMIC64K .Fd #define SQLITE_IOCAP_SAFE_APPEND .Fd #define SQLITE_IOCAP_SEQUENTIAL .Fd #define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN .Fd #define SQLITE_IOCAP_POWERSAFE_OVERWRITE .Fd #define SQLITE_IOCAP_IMMUTABLE .Fd #define SQLITE_IOCAP_BATCH_ATOMIC .Sh DESCRIPTION The xDeviceCharacteristics method of the sqlite3_io_methods object returns an integer which is a vector of these bit values expressing I/O characteristics of the mass storage device that holds the file that the sqlite3_io_methods refers to. .Pp The SQLITE_IOCAP_ATOMIC property means that all writes of any size are atomic. The SQLITE_IOCAP_ATOMICnnn values mean that writes of blocks that are nnn bytes in size and are aligned to an address which is an integer multiple of nnn are atomic. The SQLITE_IOCAP_SAFE_APPEND value means that when data is appended to a file, the data is appended first then the size of the file is extended, never the other way around. The SQLITE_IOCAP_SEQUENTIAL property means that information is written to disk in the same order as calls to xWrite(). The SQLITE_IOCAP_POWERSAFE_OVERWRITE property means that after reboot following a crash or power loss, the only bytes in a file that were written at the application level might have changed and that adjacent bytes, even bytes within the same sector are guaranteed to be unchanged. The SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN flag indicates that a file cannot be deleted when open. The SQLITE_IOCAP_IMMUTABLE flag indicates that the file is on read-only media and cannot be changed even by processes with elevated privileges. .Pp The SQLITE_IOCAP_BATCH_ATOMIC property means that the underlying filesystem supports doing multiple write operations atomically when those write operations are bracketed by SQLITE_FCNTL_BEGIN_ATOMIC_WRITE and SQLITE_FCNTL_COMMIT_ATOMIC_WRITE. .Sh IMPLEMENTATION NOTES These declarations were extracted from the interface documentation at line 622. .Bd -literal #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 .Ed .Sh SEE ALSO .Xr sqlite3_io_methods 3 , .Xr SQLITE_FCNTL_LOCKSTATE 3