summaryrefslogtreecommitdiff
path: root/cdb.3
blob: a85b34c12e38983d30cc15bcd82952f57a399a08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
.TH cdb 3
.SH NAME
cdb \- read from a constant database
.SH SYNTAX
.B #include <cdb.h>

int \fBcdb_seek(\fP\fIfd,key,len,dlen\fR\fB)\fP;

int \fIfd\fR;
.br
char *\fIkey\fR;
.br
unsigned int \fIlen\fR;
.br
uint32 *\fIdlen\fR;
.SH DESCRIPTION
.B cdb_seek
looks up
.I key
in a constant database.
It returns 1 if 
.I key
is present,
0 if 
.I key
is not present,
or \-1 if there was a read error.
.I key
is an array of
.I len
characters.

.B cdb_seek
needs an open file descriptor,
.IR fd ,
pointing to the database.
If
.B cdb_seek
returns 1,
it points
.I fd
at the beginning of the data portion of the first record
indexed by
.IR key ,
and it stores the data length in
.IR dlen.
.B cdb_seek
does not provide a way to read subsequent records with the same key.

It's fine to do several
.B cdb_seek
lookups with the same open file descriptor.
Beware, however, that two simultaneous
.B cdb_seek
lookups can fail horribly;
separate processes should not share the same database descriptor.
Furthermore, any updates after the database was opened
will be invisible.
It's rarely a good idea for a long-running program
to hold a database open.
.SH "SEE ALSO"
cdbget(1)