ERR_GET_LIB(3) | Library Functions Manual | ERR_GET_LIB(3)

# NAME

`ERR_GET_LIB`, `ERR_GET_FUNC`, `ERR_GET_REASON`, `ERR_FATAL_ERROR` — get library, function and reason codes for OpenSSL errors

# SYNOPSIS

library “libcrypto”
`#include <openssl/err.h>`

int
`ERR_GET_LIB`(unsigned long e);

int
`ERR_GET_FUNC`(unsigned long e);

int
`ERR_GET_REASON`(unsigned long e);

int
`ERR_FATAL_ERROR`(unsigned long e);

# DESCRIPTION

The error code returned by ERR_get_error(3) consists of a library number, function code, and reason code. `ERR_GET_LIB`(), `ERR_GET_FUNC`(), and `ERR_GET_REASON`() can be used to extract these.

The library number and function code describe where the error occurred, whereas the reason code is the information about what went wrong.

Each sub-library of OpenSSL has a unique library number; function and reason codes are unique within each sub-library. Note that different libraries may use the same value to signal different functions and reasons.

`ERR_R_*` reason codes such as `ERR_R_MALLOC_FAILURE` are globally unique. However, when checking for sub-library specific reason codes, be sure to also compare the library number.

`ERR_FATAL_ERROR`() indicates whether a given error code is a fatal error.

These functions are implemented as macros.

# RETURN VALUES

`ERR_GET_LIB`(), `ERR_GET_FUNC`(), and `ERR_GET_REASON`() return the library number, function code, and reason code, respectively.

`ERR_FATAL_ERROR`() returns non-zero if the error is fatal or 0 otherwise.

# SEE ALSO

ERR(3), ERR_get_error(3)

# HISTORY

`ERR_GET_LIB`(), `ERR_GET_FUNC`(), `ERR_GET_REASON`(), and `ERR_FATAL_ERROR`() first appeared in SSLeay 0.4.4 and have been available since OpenBSD 2.4.

June 8, 2025 | Debian