1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
4
<title>Device Characteristics</title>
5
<style type="text/css">
8
font-family: Verdana, sans-serif;
13
a:visited { color: #734559 }
15
.logo { position:absolute; margin:3px; }
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; }
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; }
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 }
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. */
69
<div><!-- container div to satisfy validator -->
71
<a href="../index.html">
72
<img class="logo" src="../images/sqlite370_banner.gif" alt="SQLite Logo"
74
<div><!-- IE hack to prevent disappearing logo--></div>
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
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>
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>
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"
98
function leavesearch() {
99
var q = document.getElementById("q");
100
if( q.value == "" ) {
102
q.style.color = "#044a64"
103
q.style.fontStyle = "italic"
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">
116
</div></div></div></div>
118
<div class=startsearch></div>
120
<a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Device Characteristics</h2><blockquote><pre>#define SQLITE_IOCAP_ATOMIC 0x00000001
121
#define SQLITE_IOCAP_ATOMIC512 0x00000002
122
#define SQLITE_IOCAP_ATOMIC1K 0x00000004
123
#define SQLITE_IOCAP_ATOMIC2K 0x00000008
124
#define SQLITE_IOCAP_ATOMIC4K 0x00000010
125
#define SQLITE_IOCAP_ATOMIC8K 0x00000020
126
#define SQLITE_IOCAP_ATOMIC16K 0x00000040
127
#define SQLITE_IOCAP_ATOMIC32K 0x00000080
128
#define SQLITE_IOCAP_ATOMIC64K 0x00000100
129
#define SQLITE_IOCAP_SAFE_APPEND 0x00000200
130
#define SQLITE_IOCAP_SEQUENTIAL 0x00000400
131
#define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN 0x00000800
132
#define SQLITE_IOCAP_POWERSAFE_OVERWRITE 0x00001000
133
</pre></blockquote><p>
134
The xDeviceCharacteristics method of the <a href="../c3ref/io_methods.html">sqlite3_io_methods</a>
135
object returns an integer which is a vector of the these
136
bit values expressing I/O characteristics of the mass storage
137
device that holds the file that the <a href="../c3ref/io_methods.html">sqlite3_io_methods</a>
140
<p>The SQLITE_IOCAP_ATOMIC property means that all writes of
141
any size are atomic. The SQLITE_IOCAP_ATOMICnnn values
142
mean that writes of blocks that are nnn bytes in size and
143
are aligned to an address which is an integer multiple of
144
nnn are atomic. The SQLITE_IOCAP_SAFE_APPEND value means
145
that when data is appended to a file, the data is appended
146
first then the size of the file is extended, never the other
147
way around. The SQLITE_IOCAP_SEQUENTIAL property means that
148
information is written to disk in the same order as calls
149
to xWrite(). The SQLITE_IOCAP_POWERSAFE_OVERWRITE property means that
150
after reboot following a crash or power loss, the only bytes in a
151
file that were written at the application level might have changed
152
and that adjacent bytes, even bytes within the same sector are
153
guaranteed to be unchanged.
154
</p><p>See also lists of
155
<a href="objlist.html">Objects</a>,
156
<a href="constlist.html">Constants</a>, and
157
<a href="funclist.html">Functions</a>.</p>