---
name: "atbindrule"
section: "3"
platform: "linux"
package: "atfs-dev"
version: "1.4pl6-15+b1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/atbindrule"
---

# atbindrule(3)

version bind rule handling

## NAME

atBindAddRule, atBindDelRule, atBindRuleFile, atBindDisplayErrors, atBindTestRule, atBindShowRules, atBindListRules - version bind rule handling

## SYNOPSIS

\#include \<atfs.h\>\
 \#include \<atfstk.h\>

int	atBindAddRule (char \*ruleName, char \*ruleBody, char \*srcFile, int srcLine);

int	atBindDelRule (char \*ruleName);

int	atBindRuleFile (char \*fileName);

int	atBindDisplayErrors;

int	atBindTestRule (char \*ruleName);

int	atBindShowRules (void);

char\*\*	atBindListRules (void);

## DESCRIPTION

The atBind module maintains an internal database storing all known version bind rules.

The *atBindAddRule* function stores a new rule in the internal database. It expects the rule name, optionally including parameter definitions, and the rule body as string arguments. Additionally, the filename (*srcFile*) of the file, where the rule is read from, and the line within that file (*srcLine*), may be given. This is used for producing proper error messages. atBindAddRule returns -1 on error, 0 otherwise.

*atBindDelRule* removes a previously defined rule from the internal database. It returns a negative return value (-1), when no rule with the given name was not found in the internal database.

The *atBindRuleFile* function scans a file containing version bind rules and adds all contained rules to the internal database.  It returns the number of version bind rules successfully added to the internal database. A zero return value may also indicate an error.

The switch *atBindDisplayErrors* may be set TRUE to enable error reporting during parsing of version binding rules. Error messages will be written directly to standard error. Initially, atBindDisplayErrors is set FALSE.

*AtBindTestRule* reports whether *ruleName* is defined as version binding rule or not. It returns a non zero (TRUE) value when the name is defined, otherwise FALSE.

*atBindShowRules* dumps the internal database to the standard output. Return value is always TRUE.

*atBindListRules* returns all known bind rule names in a list. The list memory is allocated by use of [malloc(3)](/malloc/3.md). On error, atBindListRules returns a null pointer.

## DIAGNOSTICS

Upon error, each routine returns a null value, the variable *atBindError* is set true (non-zero), and an explaining message is copied to the *atBindErrorMsg* string buffer. The atBindError variable is cleared upon successful calls, the message buffer remains unchanged.

## ENVIRONMENT

*SHAPETOOLS* - list of path names as search space for files containing version bind rules. The bind rule files must be named *BindRules*. Default path is */usr/local/lib/shape*.

## FILES

$SHAPETOOLS/BindRules

## SEE ALSO

[atbind(3)](/atbind/3.md)
