---
name: "libressl-ERR_load_strings"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-ERR_load_strings"
---

# libressl-ERR\_load\_strings(3)

load arbitrary OpenSSL error strings

## NAME

**ERR\_load\_strings**, **ERR\_PACK**, **ERR\_get\_next\_error\_library** – load arbitrary OpenSSL error strings

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

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