---
name: "genders_nodelist_destroy"
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_nodelist_create"
---

# genders\_nodelist\_destroy(3)

list create, clear, and destroy routines

Part of [genders\_nodelist\_create(3)](/genders_nodelist_create/3.md).

## NAME

genders\_nodelist\_create, genders\_nodelist\_clear, genders\_nodelist\_destroy, genders\_attrlist\_create, genders\_attrlist\_clear, genders\_attrlist\_destroy, genders\_vallist\_create, genders\_vallist\_clear, genders\_vallist\_destroy - list create, clear, and destroy routines

## SYNOPSIS

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

**int genders\_nodelist\_create(genders\_t handle, char \*\*\*nodelist);**

**int genders\_nodelist\_clear(genders\_t handle, char \*\*nodelist);**

**int genders\_nodelist\_destroy(genders\_t handle, char \*\*nodelist);**

**int genders\_attrlist\_create(genders\_t handle, char \*\*\*attrlist);**

**int genders\_attrlist\_clear(genders\_t handle, char \*\*attrlist);**

**int genders\_attrlist\_destroy(genders\_t handle, char \*\*attrlist);**

**int genders\_vallist\_create(genders\_t handle, char \*\*\*vallist);**

**int genders\_vallist\_clear(genders\_t handle, char \*\*vallist);**

**int genders\_vallist\_destroy(genders\_t handle, char \*\*vallist);**\

## DESCRIPTION

**genders\_nodelist\_create()**, **genders\_nodelist\_clear()**, **genders\_nodelist\_destroy()**, **genders\_attrlist\_create()**, **genders\_attrlist\_clear()**, **genders\_attrlist\_destroy()**, **genders\_vallist\_create()**, **genders\_vallist\_clear()**, and **genders\_vallist\_destroy()** are used to create, clear, and destroy lists (arrays of strings) for use with [**genders\_getnodes**(3)](/genders_getnodes/3.md), [**genders\_getattr**(3)](/genders_getattr/3.md), and [**genders\_getattr\_all**(3)](/genders_getattr_all/3.md).

**genders\_nodelist\_create()**, **genders\_attrlist\_create()**, and **genders\_vallist\_create()** creates a list with minimum size to store nodes, attributes, and attribute values respectively. *nodelist*, *attrlist*, and *vallist* are respectively set to point to the created list.  The created lists are guaranteed to store all the node, attribute, and value information returned from [**genders\_getnodes**(3)](/genders_getnodes/3.md), [**genders\_getattr**(3)](/genders_getattr/3.md), and [**genders\_getattr\_all**(3)](/genders_getattr_all/3.md).

**genders\_nodelist\_clear()**, **genders\_attrlist\_clear()**, and **genders\_vallist\_clear()** clear any information stored in the lists pointed to by *nodelist*, *attrlist*, and *vallist* repectively.  They do not have be called after their respective create functions.  They only have to be called after they are used in [**genders\_getnodes**(3)](/genders_getnodes/3.md), [**genders\_getattr**(3)](/genders_getattr/3.md), and [**genders\_getattr\_all**(3)](/genders_getattr_all/3.md), and the programmer wishes to re-use the list.

**genders\_nodelist\_destroy()**, **genders\_attrlist\_destroy()**, and **genders\_vallist\_destroy()** destroy the lists pointed to by *nodelist*, *attrlist*, and *vallist* respectively.

If no attributes or values are listed in the genders database all of the attrlist and vallist functions will do nothing.  The pointer passed into **genders\_attrlist\_create()** and **genders\_vallist\_create()** will not be set.

## RETURN VALUES

On success, **genders\_nodelist\_create()**, **genders\_attrlist\_create()**, and **genders\_vallist\_create()** return the number of elements the created list can store.  On success, **genders\_nodelist\_clear()**, **genders\_attrlist\_clear()**, **genders\_vallist\_clear()** **genders\_nodelist\_destroy()**, **genders\_attrlist\_destroy()**, **genders\_vallist\_destroy()** return 0.  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.  Before lists of appropriate size can be created, the genders file must be read and parsed.

- **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\_OUTMEM**

  [**malloc**(3)](/malloc/3.md) has failed internally, system is out of memory.

- **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\_getnodes(3)](/genders_getnodes/3.md), [genders\_getattr(3)](/genders_getattr/3.md), [genders\_getattr\_all(3)](/genders_getattr_all/3.md), [genders\_errnum(3)](/genders_errnum/3.md), [genders\_strerror(3)](/genders_strerror/3.md)
