NAME¶
bin_search, copyfile, replace_line, insert_line - general purpose functions for
performing a binary search
SYNOPSIS¶
char *bin_search(char *key, FILE *fp);
void copyfile(FILE *fromfp, FILE *tofp);
char *replace_line(char *new_line, char *key, FILE *fp);
char *insert_line(char *new_line, char *key, FILE *fp);
DESCRIPTION¶
The WordNet library contains several general purpose functions for performing a
binary search and modifying sorted files.
bin_search() is the primary binary search algorithm to search for
key as the first item on a line in the file pointed to by
fp.
The delimiter between the key and the rest of the fields on the line, if any,
must be a space. A pointer to a static variable containing the entire line is
returned.
NULL is returned if a match is not found.
The remaining functions are not used by WordNet, and are only briefly described.
copyfile() copies the contents of one file to another.
replace_line() replaces a line in a file having searchkey
key with
the contents of
new_line. It returns the original line or
NULL in case of error.
insert_line() finds the proper place to insert the contents of
new_line, having searchkey
key in the sorted file pointed to by
fp. It returns
NULL if a line with this searchkey
is already in the file.
NOTES¶
The maximum length of
key is 1024.
The maximum line length in a file is 25K.
If there are no additional fields after the search key, the key must be followed
by at least one space before the newline character.
SEE ALSO¶
wnintro(3WN),
morph(3WN),
wnsearch(3WN),
wnutil(3WN),
wnintro(5WN).
WARNINGS¶
binsearch() returns a pointer to a static character buffer. The returned
string should be copied by the caller if the results need to be saved, as a
subsequent call will replace the contents of the static buffer.