Name
bin_search, copyfile, replace_line, insert_line
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.