|
|
1.1 ! root 1: .SH NAME ! 2: bread, bwrite, bopen, bclose, bseek, bkey, bdelete, bfirst, bflush, breclen ! 3: .TH ! 4: cbt(3) ! 5: .SH SYNOPSIS ! 6: .nf ! 7: .B typedef struct { char *mdata; unsigned short mlen; } mbuf; ! 8: .B #include "cbt.h" ! 9: .B bfile *bopen(file, type) char *file; ! 10: .B bseek(bf, key) bfile *bf; mbuf key; ! 11: .B bfirst(bf) bfile *bf; ! 12: .B bclose(bf) bfile *bf; ! 13: .B breclen(bf) bfile *bf; ! 14: .B bread(bf, key, value) bfile *bf; mbuf *key, *value; ! 15: .B bdelete(bf, key) bfile *bf; mbuf key; ! 16: .B bflush(bf) bfile *bf; ! 17: .fi ! 18: .SH DESCRIPTION ! 19: These subroutines are the C interface to B-tree files. ! 20: Load them using ! 21: .I -lcbt. ! 22: The include file contains the definition of ! 23: .I mbuf. ! 24: B-trees may be shared by multiple readers and a single writer, since the effect of a writer's changes ! 25: are not seen until the root of the tree is written back. ! 26: Keys can be no longer than 255 bytes. ! 27: The routines communicate by means of ! 28: a ! 29: .I bfile ! 30: pointer returned by ! 31: .I bopen. ! 32: A B-tree named ! 33: .I file ! 34: corresponds to two ! 35: .UX ! 36: files, ! 37: .I file.T ! 38: and (if the file is not an index) ! 39: .I file.F. ! 40: The ! 41: .I type ! 42: parameter to ! 43: .I bopen ! 44: should be either 0 or 2, as in open (2). ! 45: .br ! 46: .I bclose ! 47: closes a B-tree and (if necessary) rewrites ! 48: its root. ! 49: .br ! 50: .I bflush ! 51: writes the root without closing the B-tree. ! 52: .PP ! 53: The subroutines keep track of a current ! 54: position in each open B-tree. ! 55: When the B-tree is opened the current ! 56: position is just before the first key. ! 57: Calling ! 58: .I bfirst ! 59: has the same effect. ! 60: .I bseek ! 61: makes the current position just before the ! 62: .I key ! 63: and returns FOUND, ! 64: if the key exists in the file, ! 65: or it makes the current position just before ! 66: the next largest key and returns NOTFOUND, ! 67: or, if there is no larger key in the file ! 68: it returns EOF. ! 69: .I bread ! 70: returns the key and value at the current ! 71: position, and advances the current position. ! 72: Note that the arguments to ! 73: .I bread ! 74: are all pointers. ! 75: If either ! 76: .I key ! 77: or ! 78: .I value ! 79: are NULL, the corresponding argument is not returned. ! 80: .I bread stores its results in the buffers ! 81: given in the arguments, and sets the lengths ! 82: of the results in the arguments. ! 83: .I breclen ! 84: returns the length of the value which will ! 85: be returned by the next call to ! 86: .I bread.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.