.Dd January 24, 2024 .Dt SQLITE_OPEN_READONLY 3 .Os .Sh NAME .Nm SQLITE_OPEN_READONLY , .Nm SQLITE_OPEN_READWRITE , .Nm SQLITE_OPEN_CREATE , .Nm SQLITE_OPEN_DELETEONCLOSE , .Nm SQLITE_OPEN_EXCLUSIVE , .Nm SQLITE_OPEN_AUTOPROXY , .Nm SQLITE_OPEN_URI , .Nm SQLITE_OPEN_MEMORY , .Nm SQLITE_OPEN_MAIN_DB , .Nm SQLITE_OPEN_TEMP_DB , .Nm SQLITE_OPEN_TRANSIENT_DB , .Nm SQLITE_OPEN_MAIN_JOURNAL , .Nm SQLITE_OPEN_TEMP_JOURNAL , .Nm SQLITE_OPEN_SUBJOURNAL , .Nm SQLITE_OPEN_SUPER_JOURNAL , .Nm SQLITE_OPEN_NOMUTEX , .Nm SQLITE_OPEN_FULLMUTEX , .Nm SQLITE_OPEN_SHAREDCACHE , .Nm SQLITE_OPEN_PRIVATECACHE , .Nm SQLITE_OPEN_WAL , .Nm SQLITE_OPEN_NOFOLLOW , .Nm SQLITE_OPEN_EXRESCODE .Nd flags for file open operations .Sh SYNOPSIS .In sqlite3.h .Fd #define SQLITE_OPEN_READONLY .Fd #define SQLITE_OPEN_READWRITE .Fd #define SQLITE_OPEN_CREATE .Fd #define SQLITE_OPEN_DELETEONCLOSE .Fd #define SQLITE_OPEN_EXCLUSIVE .Fd #define SQLITE_OPEN_AUTOPROXY .Fd #define SQLITE_OPEN_URI .Fd #define SQLITE_OPEN_MEMORY .Fd #define SQLITE_OPEN_MAIN_DB .Fd #define SQLITE_OPEN_TEMP_DB .Fd #define SQLITE_OPEN_TRANSIENT_DB .Fd #define SQLITE_OPEN_MAIN_JOURNAL .Fd #define SQLITE_OPEN_TEMP_JOURNAL .Fd #define SQLITE_OPEN_SUBJOURNAL .Fd #define SQLITE_OPEN_SUPER_JOURNAL .Fd #define SQLITE_OPEN_NOMUTEX .Fd #define SQLITE_OPEN_FULLMUTEX .Fd #define SQLITE_OPEN_SHAREDCACHE .Fd #define SQLITE_OPEN_PRIVATECACHE .Fd #define SQLITE_OPEN_WAL .Fd #define SQLITE_OPEN_NOFOLLOW .Fd #define SQLITE_OPEN_EXRESCODE .Sh DESCRIPTION These bit values are intended for use in the 3rd parameter to the .Fn sqlite3_open_v2 interface and in the 4th parameter to the sqlite3_vfs.xOpen method. .Pp Only those flags marked as "Ok for sqlite3_open_v2()" may be used as the third argument to the .Fn sqlite3_open_v2 interface. The other flags have historically been ignored by sqlite3_open_v2(), though future versions of SQLite might change so that an error is raised if any of the disallowed bits are passed into sqlite3_open_v2(). Applications should not depend on the historical behavior. .Pp Note in particular that passing the SQLITE_OPEN_EXCLUSIVE flag into .Fn sqlite3_open_v2 does *not* cause the underlying database file to be opened using O_EXCL. Passing SQLITE_OPEN_EXCLUSIVE into .Fn sqlite3_open_v2 has historically be a no-op and might become an error in future versions of SQLite. .Sh IMPLEMENTATION NOTES These declarations were extracted from the interface documentation at line 574. .Bd -literal #define SQLITE_OPEN_READONLY 0x00000001 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_READWRITE 0x00000002 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_CREATE 0x00000004 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_DELETEONCLOSE 0x00000008 /* VFS only */ #define SQLITE_OPEN_EXCLUSIVE 0x00000010 /* VFS only */ #define SQLITE_OPEN_AUTOPROXY 0x00000020 /* VFS only */ #define SQLITE_OPEN_URI 0x00000040 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_MEMORY 0x00000080 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_MAIN_DB 0x00000100 /* VFS only */ #define SQLITE_OPEN_TEMP_DB 0x00000200 /* VFS only */ #define SQLITE_OPEN_TRANSIENT_DB 0x00000400 /* VFS only */ #define SQLITE_OPEN_MAIN_JOURNAL 0x00000800 /* VFS only */ #define SQLITE_OPEN_TEMP_JOURNAL 0x00001000 /* VFS only */ #define SQLITE_OPEN_SUBJOURNAL 0x00002000 /* VFS only */ #define SQLITE_OPEN_SUPER_JOURNAL 0x00004000 /* VFS only */ #define SQLITE_OPEN_NOMUTEX 0x00008000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_FULLMUTEX 0x00010000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_SHAREDCACHE 0x00020000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_PRIVATECACHE 0x00040000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_WAL 0x00080000 /* VFS only */ #define SQLITE_OPEN_NOFOLLOW 0x01000000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_EXRESCODE 0x02000000 /* Extended result codes */ .Ed .Sh SEE ALSO .Xr sqlite3_open 3