Annotation of researchv10dc/man/adm/man3/cbt.3, revision 1.1.1.1

1.1       root        1: .TH CBT 3X
                      2: .CT 2 data_man
                      3: .SH NAME
                      4: bopen, bclose, bseek, bfirst, bkey, breclen, bread,
                      5: bdelete, bwrite \(mi compressed B-tree subroutines
                      6: .SH SYNOPSIS
                      7: .nf
                      8: .PP
                      9: .B #include <cbt.h>
                     10: .PP
                     11: .B "bfile *bopen(name, typ) char *name;"
                     12: .PP
                     13: .B "void bclose(b) bfile *b;"
                     14: .PP
                     15: .B "bseek(b, key) bfile *b; mbuf key;"
                     16: .PP
                     17: .B "bfirst(b) bfile *b;"
                     18: .PP
                     19: .B "mbuf bkey(b) bfile *b;"
                     20: .PP
                     21: .B "breclen(b) bfile *b;"
                     22: .PP
                     23: .B "bread(b, key, val) bfile *b; mbuf *key, *val;"
                     24: .PP
                     25: .B "bdelete(b, key) bfile *b; mbuf key;"
                     26: .PP
                     27: .B "bwrite(b, key, val) bfile *b; mbuf key, val;"
                     28: .fi
                     29: .SH DESCRIPTION
                     30: These functions manipulate
                     31: files of key/value records.
                     32: Such files are created by
                     33: .BR "cbt creat" ;
                     34: see
                     35: .IR cbt (1).
                     36: To load the functions use the
                     37: .IR ld (1)
                     38: option
                     39: .BR \-lcbt .
                     40: .PP
                     41: The records occur sorted
                     42: (increasing lexicographical order) by their keys,
                     43: which must be distinct.
                     44: Both keys and values are arrays of characters accessed through
                     45: the structure
                     46: .EX
                     47: .ta 8n +15n
                     48: .nf
                     49: \fLtypedef struct {
                     50:        \fLchar *mdata;\fR      address of data bytes
                     51:        \fLshort mlen;\fP       number of data bytes
                     52: \fL} mbuf;\fR
                     53: .fi
                     54: .EE
                     55: .PP
                     56: .I "Bopen"
                     57: attempts to open a named B-tree,
                     58: and if successful establishes a read pointer
                     59: pointing to the beginning of the file and
                     60: returns a pointer to be used
                     61: in calling the other routines.
                     62: .I Typ
                     63: is 0 for read-only or 2 for read-write.
                     64: .I Bopen
                     65: returns a descriptor that identifies the file to the other functions.
                     66: .PP
                     67: .I "Bclose"
                     68: closes a B-tree.
                     69: .PP
                     70: .I "Bseek"
                     71: positions the read pointer of the file
                     72: to the record whose key is
                     73: the first not less than
                     74: .IR key .
                     75: The routine returns 1 if
                     76: .I key
                     77: is in the file,
                     78: .B EOF
                     79: if
                     80: .I key
                     81: is greater
                     82: than any key in the file,
                     83: and 0 otherwise.
                     84: .PP
                     85: .I "Bfirst"
                     86: sets the read pointer to the beginning of the file.
                     87: It has the same error return as
                     88: .BR bseek .
                     89: .PP
                     90: .I "Bkey"
                     91: returns the current key.
                     92: The element
                     93: .I mdata
                     94: of the returned structure
                     95: is 0
                     96: on errors,
                     97: otherwise it points to a static buffer.
                     98: .PP
                     99: .I "Breclen"
                    100: returns the length of the value part of the current record.
                    101: .PP
                    102: .I "Bread"
                    103: reads the value at the read pointer into the space
                    104: pointed to by
                    105: .B val->mdata,
                    106: places its length in
                    107: .LR val->mlen ,
                    108: and advances the read pointer
                    109: to the record with the next greater key.
                    110: If
                    111: .I key
                    112: is not 0
                    113: the key of the record is read into the
                    114: space pointed to by
                    115: .B key->mdata
                    116: and its length is placed in
                    117: .BR key->mlen .
                    118: .I Bread
                    119: returns 0
                    120: if successful.
                    121: .PP
                    122: .I "Bdelete"
                    123: removes the record with the given key,
                    124: returning 1 if the record was found,
                    125: \-1
                    126: if there was an error, and 0
                    127: otherwise,
                    128: The read pointer is left undefined.
                    129: .PP
                    130: .I "Bwrite"
                    131: writes the given value with the given key.
                    132: An existing record with that key will be replaced.
                    133: The read pointer is left undefined.
                    134: .SH FILES
                    135: .F \fIname\fP.T
                    136: .br
                    137: .F \fIname\fP.F
                    138: .SH SEE ALSO
                    139: .IR cbt (1), 
                    140: .IR dbm (3)
                    141: .SH DIAGNOSTICS
                    142: Routines which return pointers return 0
                    143: on errors,
                    144: routines which return integers return \-1.
                    145: .SH BUGS
                    146: The length of any key is limited to 255.
                    147: .br
                    148: The
                    149: .B mbuf
                    150: arguments are passed inconsistently to the routines,
                    151: sometimes by value and sometimes by reference.
                    152: .br
                    153: .I Cbt
                    154: files are not directly portable between big-endian and
                    155: little-endian machines.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.