---
name: "binsrch"
section: "3"
platform: "linux"
package: "wordnet-dev"
version: "1.7-6"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/binsrch"
---

# binsrch(3)

## 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);**

## 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

**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.
