summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/sqlite3_initialize.3
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man3/sqlite3_initialize.3')
-rw-r--r--static/netbsd/man3/sqlite3_initialize.3120
1 files changed, 120 insertions, 0 deletions
diff --git a/static/netbsd/man3/sqlite3_initialize.3 b/static/netbsd/man3/sqlite3_initialize.3
new file mode 100644
index 00000000..8e3dd9b7
--- /dev/null
+++ b/static/netbsd/man3/sqlite3_initialize.3
@@ -0,0 +1,120 @@
+.Dd January 24, 2024
+.Dt SQLITE3_INITIALIZE 3
+.Os
+.Sh NAME
+.Nm sqlite3_initialize ,
+.Nm sqlite3_shutdown ,
+.Nm sqlite3_os_init ,
+.Nm sqlite3_os_end
+.Nd initialize the SQLite library
+.Sh SYNOPSIS
+.In sqlite3.h
+.Ft int
+.Fo sqlite3_initialize
+.Fa "void"
+.Fc
+.Ft int
+.Fo sqlite3_shutdown
+.Fa "void"
+.Fc
+.Ft int
+.Fo sqlite3_os_init
+.Fa "void"
+.Fc
+.Ft int
+.Fo sqlite3_os_end
+.Fa "void"
+.Fc
+.Sh DESCRIPTION
+The sqlite3_initialize() routine initializes the SQLite library.
+The sqlite3_shutdown() routine deallocates any resources that were
+allocated by sqlite3_initialize().
+These routines are designed to aid in process initialization and shutdown
+on embedded systems.
+Workstation applications using SQLite normally do not need to invoke
+either of these routines.
+.Pp
+A call to sqlite3_initialize() is an "effective" call if it is the
+first time sqlite3_initialize() is invoked during the lifetime of the
+process, or if it is the first time sqlite3_initialize() is invoked
+following a call to sqlite3_shutdown().
+Only an effective call of sqlite3_initialize() does any initialization.
+All other calls are harmless no-ops.
+.Pp
+A call to sqlite3_shutdown() is an "effective" call if it is the first
+call to sqlite3_shutdown() since the last sqlite3_initialize().
+Only an effective call to sqlite3_shutdown() does any deinitialization.
+All other valid calls to sqlite3_shutdown() are harmless no-ops.
+.Pp
+The sqlite3_initialize() interface is threadsafe, but sqlite3_shutdown()
+is not.
+The sqlite3_shutdown() interface must only be called from a single
+thread.
+All open database connections must be closed and
+all other SQLite resources must be deallocated prior to invoking sqlite3_shutdown().
+.Pp
+Among other things, sqlite3_initialize() will invoke sqlite3_os_init().
+Similarly, sqlite3_shutdown() will invoke sqlite3_os_end().
+.Pp
+The sqlite3_initialize() routine returns SQLITE_OK on success.
+If for some reason, sqlite3_initialize() is unable to initialize the
+library (perhaps it is unable to allocate a needed resource such as
+a mutex) it returns an error code other than SQLITE_OK.
+.Pp
+The sqlite3_initialize() routine is called internally by many other
+SQLite interfaces so that an application usually does not need to invoke
+sqlite3_initialize() directly.
+For example,
+.Fn sqlite3_open
+calls sqlite3_initialize() so the SQLite library will be automatically
+initialized when
+.Fn sqlite3_open
+is called if it has not be initialized already.
+However, if SQLite is compiled with the SQLITE_OMIT_AUTOINIT
+compile-time option, then the automatic calls to sqlite3_initialize()
+are omitted and the application must call sqlite3_initialize() directly
+prior to using any other SQLite interface.
+For maximum portability, it is recommended that applications always
+invoke sqlite3_initialize() directly prior to using any other SQLite
+interface.
+Future releases of SQLite may require this.
+In other words, the behavior exhibited when SQLite is compiled with
+SQLITE_OMIT_AUTOINIT might become the default behavior
+in some future release of SQLite.
+.Pp
+The sqlite3_os_init() routine does operating-system specific initialization
+of the SQLite library.
+The sqlite3_os_end() routine undoes the effect of sqlite3_os_init().
+Typical tasks performed by these routines include allocation or deallocation
+of static resources, initialization of global variables, setting up
+a default sqlite3_vfs module, or setting up a default configuration
+using
+.Fn sqlite3_config .
+The application should never invoke either sqlite3_os_init() or sqlite3_os_end()
+directly.
+The application should only invoke sqlite3_initialize() and sqlite3_shutdown().
+The sqlite3_os_init() interface is called automatically by sqlite3_initialize()
+and sqlite3_os_end() is called by sqlite3_shutdown().
+Appropriate implementations for sqlite3_os_init() and sqlite3_os_end()
+are built into SQLite when it is compiled for Unix, Windows, or OS/2.
+When built for other platforms (using the
+SQLITE_OS_OTHER=1 compile-time option) the application
+must supply a suitable implementation for sqlite3_os_init() and sqlite3_os_end().
+An application-supplied implementation of sqlite3_os_init() or sqlite3_os_end()
+must return SQLITE_OK on success and some other error code
+upon failure.
+.Sh IMPLEMENTATION NOTES
+These declarations were extracted from the
+interface documentation at line 1567.
+.Bd -literal
+SQLITE_API int sqlite3_initialize(void);
+SQLITE_API int sqlite3_shutdown(void);
+SQLITE_API int sqlite3_os_init(void);
+SQLITE_API int sqlite3_os_end(void);
+.Ed
+.Sh SEE ALSO
+.Xr sqlite3 3 ,
+.Xr sqlite3_config 3 ,
+.Xr sqlite3_open 3 ,
+.Xr sqlite3_vfs 3 ,
+.Xr SQLITE_OK 3