NAME¶
genders_testattr - test if a node has an attribute
SYNOPSIS¶
#include <genders.h>
int genders_testattr(genders_t handle, const char *node, const char *attr,
char *val, int len);
int genders_testattrval(genders_t handle, const char *node, const char *attr,
const char *val);
DESCRIPTION¶
genders_testattr() tests if the node pointed to by
node contains
the attribute pointed to by
attr. If
node is NULL, the current
node is tested. If the attribute is found, its value is stored in the buffer
pointed to by
val.
len should indicate the length of the buffer.
If the attribute value is not needed,
val can be set to NULL.
To avoid passing in an attribute value buffer that is not large enough to store
the attribute value,
genders_getmaxvallen(3) should be used to
determine the minimum buffer size that should be used.
genders_testattrval() tests if the node pointed to by
node
contains the attribute pointed to by
attr and if that attribute is
equal to the attribute value pointed to by
val. If
val is NULL,
only the attribute is tested.
RETURN VALUES¶
For
genders_testattr(), if the node contains the attribute, 1 is
returned. 0 is returned if the node does not contain the attribute.
For
genders_testattrval(), if the node contains the attribute and it is
equal to the attribute value, 1 is returned. 0 is returned if the node does
not contain the attribute, or if the attribute is not equal to the attribute
value.
For both
genders_testattr() and
genders_testattrval(), -1 is
returned on error, and an error code is returned in
handle. The error
code can be retrieved via
genders_errnum(3) , and a description of the
error code can be retrieved via
genders_strerror(3). Error codes are
defined in genders.h.
ERRORS¶
- GENDERS_ERR_NULLHANDLE
- The handle parameter is NULL. The genders handle must be created
with genders_handle_create(3).
- GENDERS_ERR_NOTLOADED
- genders_load_data(3) has not been called to load genders data.
- GENDERS_ERR_OVERFLOW
- The buffer pointed to by val is not large enough to store the
attribute value.
- GENDERS_ERR_PARAMETERS
- An incorrect parameter has been passed in.
- GENDERS_ERR_NOTFOUND
- The node pointed to by node cannot be found in the genders file or
if node=NULL, the machine genders is running on is not listed in
the genders database.
- GENDERS_ERR_MAGIC
- handle has an incorrect magic number. handle does not point
to a genders handle or handle has been destroyed by
genders_handle_destroy(3).
FILES¶
/usr/include/genders.h
SEE ALSO¶
libgenders(3),
genders_handle_create(3),
genders_load_data(3),
genders_getmaxvallen(3),
genders_errnum(3),
genders_strerror(3)