~ubuntu-branches/ubuntu/wily/sqlite3/wily

« back to all changes in this revision

Viewing changes to c3ref/initialize.html

  • Committer: Package Import Robot
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2012-06-13 21:43:48 UTC
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: package-import@ubuntu.com-20120613214348-uy14uupdeq0hh04k
Tags: upstream-3.7.13/www
Import upstream version 3.7.13, component www

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
2
<html><head>
 
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
4
<title>Initialize The SQLite Library</title>
 
5
<style type="text/css">
 
6
body {
 
7
    margin: auto;
 
8
    font-family: Verdana, sans-serif;
 
9
    padding: 8px 1%;
 
10
}
 
11
 
 
12
a { color: #044a64 }
 
13
a:visited { color: #734559 }
 
14
 
 
15
.logo { position:absolute; margin:3px; }
 
16
.tagline {
 
17
  float:right;
 
18
  text-align:right;
 
19
  font-style:italic;
 
20
  width:300px;
 
21
  margin:12px;
 
22
  margin-top:58px;
 
23
}
 
24
 
 
25
.toolbar {
 
26
  text-align: center;
 
27
  line-height: 1.6em;
 
28
  margin: 0;
 
29
  padding: 0px 8px;
 
30
}
 
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
 
32
.toolbar a:visited { color: white; }
 
33
.toolbar a:hover { color: #044a64; background: white; }
 
34
 
 
35
.content    { margin: 5%; }
 
36
.content dt { font-weight:bold; }
 
37
.content dd { margin-bottom: 25px; margin-left:20%; }
 
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
 
39
 
 
40
/* rounded corners */
 
41
.se  { background: url(../images/se.gif) 100% 100% no-repeat #044a64}
 
42
.sw  { background: url(../images/sw.gif) 0% 100% no-repeat }
 
43
.ne  { background: url(../images/ne.gif) 100% 0% no-repeat }
 
44
.nw  { background: url(../images/nw.gif) 0% 0% no-repeat }
 
45
 
 
46
/* Things for "fancyformat" documents start here. */
 
47
.fancy img+p {font-style:italic}
 
48
.fancy .codeblock i { color: darkblue; }
 
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
 
50
.fancy h2 { margin-left: 10px }
 
51
.fancy h3 { margin-left: 20px }
 
52
.fancy h4 { margin-left: 30px }
 
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
 
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
 
55
.fancy #toc a        { color: darkblue ; text-decoration: none }
 
56
.fancy .todo         { color: #AA3333 ; font-style : italic }
 
57
.fancy .todo:before  { content: 'TODO:' }
 
58
.fancy p.todo        { border: solid #AA3333 1px; padding: 1ex }
 
59
.fancy img { display:block; }
 
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
 
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
 
62
.fancy li p { margin: 1em 0 }
 
63
/* End of "fancyformat" specific rules. */
 
64
 
 
65
</style>
 
66
  
 
67
</head>
 
68
<body>
 
69
<div><!-- container div to satisfy validator -->
 
70
 
 
71
<a href="../index.html">
 
72
<img class="logo" src="../images/sqlite370_banner.gif" alt="SQLite Logo"
 
73
 border="0"></a>
 
74
<div><!-- IE hack to prevent disappearing logo--></div>
 
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
 
76
 
 
77
<table width=100% style="clear:both"><tr><td>
 
78
  <div class="se"><div class="sw"><div class="ne"><div class="nw">
 
79
  <table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
 
80
  <td width=100%>
 
81
  <div class="toolbar">
 
82
    <a href="../about.html">About</a>
 
83
    <a href="../sitemap.html">Sitemap</a>
 
84
    <a href="../docs.html">Documentation</a>
 
85
    <a href="../download.html">Download</a>
 
86
    <a href="../copyright.html">License</a>
 
87
    <a href="../news.html">News</a>
 
88
    <a href="../support.html">Support</a>
 
89
  </div>
 
90
<script>
 
91
  gMsg = "Search SQLite Docs..."
 
92
  function entersearch() {
 
93
    var q = document.getElementById("q");
 
94
    if( q.value == gMsg ) { q.value = "" }
 
95
    q.style.color = "black"
 
96
    q.style.fontStyle = "normal"
 
97
  }
 
98
  function leavesearch() {
 
99
    var q = document.getElementById("q");
 
100
    if( q.value == "" ) { 
 
101
      q.value = gMsg
 
102
      q.style.color = "#044a64"
 
103
      q.style.fontStyle = "italic"
 
104
    }
 
105
  }
 
106
</script>
 
107
<td>
 
108
    <div style="padding:0 1em 0px 0;white-space:nowrap">
 
109
    <form name=f method="GET" action="http://www.sqlite.org/search">
 
110
      <input id=q name=q type=text
 
111
       onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
 
112
      <input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
 
113
    </form>
 
114
    </div>
 
115
  </table>
 
116
</div></div></div></div>
 
117
</td></tr></table>
 
118
<div class=startsearch></div>
 
119
  
 
120
<a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Initialize The SQLite Library</h2><blockquote><pre>int sqlite3_initialize(void);
 
121
int sqlite3_shutdown(void);
 
122
int sqlite3_os_init(void);
 
123
int sqlite3_os_end(void);
 
124
</pre></blockquote><p>
 
125
The sqlite3_initialize() routine initializes the
 
126
SQLite library.  The sqlite3_shutdown() routine
 
127
deallocates any resources that were allocated by sqlite3_initialize().
 
128
These routines are designed to aid in process initialization and
 
129
shutdown on embedded systems.  Workstation applications using
 
130
SQLite normally do not need to invoke either of these routines.</p>
 
131
 
 
132
<p>A call to sqlite3_initialize() is an "effective" call if it is
 
133
the first time sqlite3_initialize() is invoked during the lifetime of
 
134
the process, or if it is the first time sqlite3_initialize() is invoked
 
135
following a call to sqlite3_shutdown().  Only an effective call
 
136
of sqlite3_initialize() does any initialization.  All other calls
 
137
are harmless no-ops.</p>
 
138
 
 
139
<p>A call to sqlite3_shutdown() is an "effective" call if it is the first
 
140
call to sqlite3_shutdown() since the last sqlite3_initialize().  Only
 
141
an effective call to sqlite3_shutdown() does any deinitialization.
 
142
All other valid calls to sqlite3_shutdown() are harmless no-ops.</p>
 
143
 
 
144
<p>The sqlite3_initialize() interface is threadsafe, but sqlite3_shutdown()
 
145
is not.  The sqlite3_shutdown() interface must only be called from a
 
146
single thread.  All open <a href="../c3ref/sqlite3.html">database connections</a> must be closed and all
 
147
other SQLite resources must be deallocated prior to invoking
 
148
sqlite3_shutdown().</p>
 
149
 
 
150
<p>Among other things, sqlite3_initialize() will invoke
 
151
sqlite3_os_init().  Similarly, sqlite3_shutdown()
 
152
will invoke sqlite3_os_end().</p>
 
153
 
 
154
<p>The sqlite3_initialize() routine returns <a href="../c3ref/c_abort.html">SQLITE_OK</a> on success.
 
155
If for some reason, sqlite3_initialize() is unable to initialize
 
156
the library (perhaps it is unable to allocate a needed resource such
 
157
as a mutex) it returns an <a href="../c3ref/c_abort.html">error code</a> other than <a href="../c3ref/c_abort.html">SQLITE_OK</a>.</p>
 
158
 
 
159
<p>The sqlite3_initialize() routine is called internally by many other
 
160
SQLite interfaces so that an application usually does not need to
 
161
invoke sqlite3_initialize() directly.  For example, <a href="../c3ref/open.html">sqlite3_open()</a>
 
162
calls sqlite3_initialize() so the SQLite library will be automatically
 
163
initialized when <a href="../c3ref/open.html">sqlite3_open()</a> is called if it has not be initialized
 
164
already.  However, if SQLite is compiled with the <a href="../compile.html#omit_autoinit">SQLITE_OMIT_AUTOINIT</a>
 
165
compile-time option, then the automatic calls to sqlite3_initialize()
 
166
are omitted and the application must call sqlite3_initialize() directly
 
167
prior to using any other SQLite interface.  For maximum portability,
 
168
it is recommended that applications always invoke sqlite3_initialize()
 
169
directly prior to using any other SQLite interface.  Future releases
 
170
of SQLite may require this.  In other words, the behavior exhibited
 
171
when SQLite is compiled with <a href="../compile.html#omit_autoinit">SQLITE_OMIT_AUTOINIT</a> might become the
 
172
default behavior in some future release of SQLite.</p>
 
173
 
 
174
<p>The sqlite3_os_init() routine does operating-system specific
 
175
initialization of the SQLite library.  The sqlite3_os_end()
 
176
routine undoes the effect of sqlite3_os_init().  Typical tasks
 
177
performed by these routines include allocation or deallocation
 
178
of static resources, initialization of global variables,
 
179
setting up a default <a href="../c3ref/vfs.html">sqlite3_vfs</a> module, or setting up
 
180
a default configuration using <a href="../c3ref/config.html">sqlite3_config()</a>.</p>
 
181
 
 
182
<p>The application should never invoke either sqlite3_os_init()
 
183
or sqlite3_os_end() directly.  The application should only invoke
 
184
sqlite3_initialize() and sqlite3_shutdown().  The sqlite3_os_init()
 
185
interface is called automatically by sqlite3_initialize() and
 
186
sqlite3_os_end() is called by sqlite3_shutdown().  Appropriate
 
187
implementations for sqlite3_os_init() and sqlite3_os_end()
 
188
are built into SQLite when it is compiled for Unix, Windows, or OS/2.
 
189
When <a href="../custombuild.html">built for other platforms</a>
 
190
(using the <a href="../compile.html#os_other">SQLITE_OS_OTHER=1</a> compile-time
 
191
option) the application must supply a suitable implementation for
 
192
sqlite3_os_init() and sqlite3_os_end().  An application-supplied
 
193
implementation of sqlite3_os_init() or sqlite3_os_end()
 
194
must return <a href="../c3ref/c_abort.html">SQLITE_OK</a> on success and some other <a href="../c3ref/c_abort.html">error code</a> upon
 
195
failure.
 
196
</p><p>See also lists of
 
197
  <a href="objlist.html">Objects</a>,
 
198
  <a href="constlist.html">Constants</a>, and
 
199
  <a href="funclist.html">Functions</a>.</p>