---
name: "genders_load_data"
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_load_data"
---

# genders\_load\_data(3)

read and parse a genders file

## NAME

genders\_load\_data -  read and parse a genders file

## SYNOPSIS

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

**int genders\_load\_data(genders\_t handle, const char \*filename);**\

## DESCRIPTION

**genders\_load\_data()** read and parses the genders file indicated by *filename*.  If *filename* is NULL, **genders\_load\_data()** will attempt to read and parse the default genders file defined by **GENDERS\_DEFAULT\_FILE**. *handle* is a genders handle created by [**genders\_handle\_create**(3)](/genders_handle_create/3.md).

After **genders\_load\_data()** is called, information about the genders file is stored in the genders handle passed in.  This information is used by other genders C API functions.  All future use of *handle* with other genders C API functions will be directly associated with the genders file indicated by *filename* (or the default genders file if *filename* is NULL).\

## RETURN VALUES

On success, 0 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\_OPEN**

  The genders file indicated by *filename* cannot be opened for reading.

- **GENDERS\_ERR\_READ**

  Error reading the genders file indicated by *filename*.

- **GENDERS\_ERR\_PARSE**

  The genders file indicated by *filename* is incorrectly formatted.

- **GENDERS\_ERR\_ISLOADED**

  [**genders\_load\_data**(3)](/genders_load_data/3.md) has already been called with *handle*.

- **GENDERS\_ERR\_OVERFLOW**

  A line in the genders database exceeds the maximum allowed length.

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

- **GENDERS\_ERR\_INTERNAL**

  An internal system error has occurred.  \

## FILES

/usr/include/genders.h

## SEE ALSO

[libgenders(3)](/libgenders/3.md), [genders\_handle\_create(3)](/genders_handle_create/3.md), [genders\_handle\_destroy(3)](/genders_handle_destroy/3.md), [genders\_errnum(3)](/genders_errnum/3.md), [genders\_strerror(3)](/genders_strerror/3.md)
