---
name: "genders_getnodes"
section: "3"
platform: "linux"
package: "libgenders0-dev"
version: "1.27-3-3.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/genders_getnodes"
---

# genders\_getnodes(3)

get nodes from the genders file

## NAME

genders\_getnodes - get nodes from the genders file

## SYNOPSIS

**#include \<genders.h\>**

**int genders\_getnodes(genders\_t handle, char \*nodes\[\], int len, const char \*attr, const char \*val);**\

## DESCRIPTION

**genders\_getnodes()** gets the names of nodes in the genders file that have the attribute specified by *attr* and the value specified by *val*.  The nodes are stored in the list pointed to by *nodes*.  *len* indicates the number of nodes that can be stored in the list.  If *attr* is NULL, **genders\_getnodes()** returns all the nodes listed in the genders file.  If *val* is NULL, attribute values are ignored.

To avoid passing in a list that is not large enough to store all the nodes, [**genders\_getnumnodes**(3)](/genders_getnumnodes/3.md) should be used to determine the minimum number of elements *nodes* should be able to store. [**genders\_nodelist\_create**(3)](/genders_nodelist_create/3.md) could be used to create a list that is guaranteed to be large enough to store all of the nodes.\

## RETURN VALUES

On success, the number of nodes stored in *nodes* is returned.  On error, -1 is returned, and an error code is returned in *handle*. The error code can be retrieved via [**genders\_errnum**(3)](/genders_errnum/3.md) , and a description of the error code can be retrieved via  [**genders\_strerror**(3)](/genders_strerror/3.md). 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_handle_create/3.md).

- **GENDERS\_ERR\_NOTLOADED**

  [**genders\_load\_data**(3)](/genders_load_data/3.md) has not been called to load genders data.

- **GENDERS\_ERR\_OVERFLOW**

  The list pointed to by *nodes* is not large enough to store all the nodes.

- **GENDERS\_ERR\_PARAMETERS**

  An incorrect parameter has been passed in.

- **GENDERS\_ERR\_NULLPTR**

  A null pointer has been found in the list passed in.

- **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)](/genders_handle_destroy/3.md).\

## FILES

/usr/include/genders.h

## SEE ALSO

[libgenders(3)](/libgenders/3.md), [genders\_handle\_create(3)](/genders_handle_create/3.md), [genders\_load\_data(3)](/genders_load_data/3.md), [genders\_getnumnodes(3)](/genders_getnumnodes/3.md), [genders\_nodelist\_create(3)](/genders_nodelist_create/3.md), [genders\_errnum(3)](/genders_errnum/3.md), [genders\_strerror(3)](/genders_strerror/3.md)
