binsrch(3WN)

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.