|
0
|
1 |
.TH cdb 3
|
|
|
2 |
.SH NAME
|
|
|
3 |
cdb \- read from a constant database
|
|
|
4 |
.SH SYNTAX
|
|
|
5 |
.B #include <cdb.h>
|
|
|
6 |
|
|
|
7 |
int \fBcdb_seek(\fP\fIfd,key,len,dlen\fR\fB)\fP;
|
|
|
8 |
|
|
|
9 |
int \fIfd\fR;
|
|
|
10 |
.br
|
|
|
11 |
char *\fIkey\fR;
|
|
|
12 |
.br
|
|
|
13 |
unsigned int \fIlen\fR;
|
|
|
14 |
.br
|
|
|
15 |
uint32 *\fIdlen\fR;
|
|
|
16 |
.SH DESCRIPTION
|
|
|
17 |
.B cdb_seek
|
|
|
18 |
looks up
|
|
|
19 |
.I key
|
|
|
20 |
in a constant database.
|
|
|
21 |
It returns 1 if
|
|
|
22 |
.I key
|
|
|
23 |
is present,
|
|
|
24 |
0 if
|
|
|
25 |
.I key
|
|
|
26 |
is not present,
|
|
|
27 |
or \-1 if there was a read error.
|
|
|
28 |
.I key
|
|
|
29 |
is an array of
|
|
|
30 |
.I len
|
|
|
31 |
characters.
|
|
|
32 |
|
|
|
33 |
.B cdb_seek
|
|
|
34 |
needs an open file descriptor,
|
|
|
35 |
.IR fd ,
|
|
|
36 |
pointing to the database.
|
|
|
37 |
If
|
|
|
38 |
.B cdb_seek
|
|
|
39 |
returns 1,
|
|
|
40 |
it points
|
|
|
41 |
.I fd
|
|
|
42 |
at the beginning of the data portion of the first record
|
|
|
43 |
indexed by
|
|
|
44 |
.IR key ,
|
|
|
45 |
and it stores the data length in
|
|
|
46 |
.IR dlen.
|
|
|
47 |
.B cdb_seek
|
|
|
48 |
does not provide a way to read subsequent records with the same key.
|
|
|
49 |
|
|
|
50 |
It's fine to do several
|
|
|
51 |
.B cdb_seek
|
|
|
52 |
lookups with the same open file descriptor.
|
|
|
53 |
Beware, however, that two simultaneous
|
|
|
54 |
.B cdb_seek
|
|
|
55 |
lookups can fail horribly;
|
|
|
56 |
separate processes should not share the same database descriptor.
|
|
|
57 |
Furthermore, any updates after the database was opened
|
|
|
58 |
will be invisible.
|
|
|
59 |
It's rarely a good idea for a long-running program
|
|
|
60 |
to hold a database open.
|
|
|
61 |
.SH "SEE ALSO"
|
|
|
62 |
cdbget(1)
|