.\" Copyright (c) 1990, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
+.\" %%%LICENSE_END
.\"
.\" @(#)btree.3 8.4 (Berkeley) 8/18/94
.\"
-.TH BTREE 3 1994-08-18 "" "Linux Programmer's Manual"
+.TH BTREE 3 2012-04-23 "" "Linux Programmer's Manual"
.\".UC 7
.SH NAME
btree \- btree database access method
.ft R
.fi
.SH DESCRIPTION
+.IR "Note well" :
+This page documents interfaces provided in glibc up until version 2.1.
+Since version 2.2, glibc no longer provides these interfaces.
+Probably, you are looking for the APIs provided by the
+.I libdb
+library instead.
+
The routine
.BR dbopen (3)
is the library interface to database files.
One of the supported file formats is btree files.
The general description of the database access methods is in
.BR dbopen (3),
-this manual page describes only the btree specific information.
+this manual page describes only the btree-specific information.
.PP
The btree data structure is a sorted, balanced tree structure storing
associated key/data pairs.
.PP
-The btree access method specific data structure provided to
+The btree access-method-specific data structure provided to
.BR dbopen (3)
is defined in the
.I <db.h>
The elements of this structure are as follows:
.TP
.I flags
-The flag value is specified by
-.IR or 'ing
-any of the following values:
+The flag value is specified by ORing any of the following values:
.RS
.TP
.B R_DUP
corruption or lost data if the system crashes while a tree is being modified.
If
.I cachesize
-is 0 (no size is specified) a default cache is used.
+is 0 (no size is specified), a default cache is used.
.TP
.I maxkeypage
The maximum number of keys which will be stored on any single page.
.\" must always be greater than or equal to 2.
.\" If
.\" .I maxkeypage
-.\" is 0 (no maximum number of keys is specified) the page fill factor is
+.\" is 0 (no maximum number of keys is specified), the page fill factor is
.\" made as large as possible (which is almost invariably what is wanted).
.TP
.I minkeypage
of in the page itself.
If
.I minkeypage
-is 0 (no minimum number of keys is specified) a value of 2 is used.
+is 0 (no minimum number of keys is specified), a value of 2 is used.
.TP
.I psize
Page size is the size (in bytes) of the pages used for nodes in the tree.
The minimum page size is 512 bytes and the maximum page size is 64K.
If
.I psize
-is 0 (no page size is specified) a page size is chosen based on the
-underlying file system I/O block size.
+is 0 (no page size is specified), a page size is chosen based on the
+underlying filesystem I/O block size.
.TP
.I compare
Compare is the key comparison function.
big endian order would be the number 4,321.
If
.I lorder
-is 0 (no order is specified) the current host order is used.
+is 0 (no order is specified), the current host order is used.
.PP
If the file already exists (and the
.B O_TRUNC
.BR dbopen (3).
.SH BUGS
Only big and little endian byte order is supported.
-.SH "SEE ALSO"
+.SH SEE ALSO
.BR dbopen (3),
.BR hash (3),
.BR mpool (3),
.BR recno (3)
-.sp
+
.IR "The Ubiquitous B-tree" ,
Douglas Comer, ACM Comput. Surv. 11, 2 (June 1979), 121-138.
-.sp
+
.IR "Prefix B-trees" ,
Bayer and Unterauer, ACM Transactions on Database Systems, Vol. 2, 1
(March 1977), 11-26.
-.sp
+
.IR "The Art of Computer Programming Vol. 3: Sorting and Searching" ,
D.E. Knuth, 1968, pp 471-480.
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.