ERR_LOAD_STRINGS(3) | Library Functions Manual | ERR_LOAD_STRINGS(3)

# NAME

`ERR_load_strings`, `ERR_PACK`, `ERR_get_next_error_library` — load arbitrary OpenSSL error strings

# SYNOPSIS

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

void
`ERR_load_strings`(int lib, ERR_STRING_DATA str[]);

unsigned long
`ERR_PACK`(int lib, int func, int reason);

int
`ERR_get_next_error_library`(void);

# DESCRIPTION

`ERR_load_strings`() registers error strings for library number lib.

str is an array of error string data:

    typedef struct ERR_string_data_st {
            unsigned long error;
            char *string;
    } ERR_STRING_DATA;

The error code is generated from the library number and a function and reason code:

`error = ERR_PACK(lib, func, reason)`

`ERR_PACK`() is a macro.

The last entry in the array is {0, `NULL`}.

`ERR_get_next_error_library`() can be used to assign library numbers to user libraries at runtime.

# RETURN VALUES

`ERR_PACK`() returns the error code. `ERR_get_next_error_library`() returns a new library number.

# SEE ALSO

ERR(3)

# HISTORY

`ERR_load_strings`() and `ERR_PACK`() first appeared in SSLeay 0.4.4. `ERR_get_next_error_library`() first appeared in SSLeay 0.9.0. These functions have been available since OpenBSD 2.4.

June 8, 2025 | Debian