- NAME
- SYNOPSIS
- DESCRIPTION
- RETURN VALUES
- SEE ALSO
- HISTORY

# NAME

ERR_error_string, ERR_error_string_n, ERR_lib_error_string, ERR_func_error_string, ERR_reason_error_string - obtain human-readable error message

# SYNOPSIS

     #include <openssl/err.h>

     char *ERR_error_string(unsigned long e, char *buf);
     void ERR_error_string_n(unsigned long e, char *buf, size_t len);

     const char *ERR_lib_error_string(unsigned long e);
     const char *ERR_func_error_string(unsigned long e);
     const char *ERR_reason_error_string(unsigned long e);

# DESCRIPTION

`ERR_error_string()` generates a human-readable string representing the error code e, and places it at buf. buf must be at least 120 bytes long. If buf is NULL, the error string is placed in a static buffer. `ERR_error_string_n()` is a variant of `ERR_error_string()` that writes at most len characters (including the terminating 0) and truncates the string if necessary. For ERR_error_string_n(), buf may not be NULL.

The string will have the following format:

     error:[error code]:[library name]:[function name]:[reason string]

error code is an 8 digit hexadecimal number, library name, function name and reason string are ASCII text.

ERR_lib_error_string(), `ERR_func_error_string()` and `ERR_reason_error_string()` return the library name, function name and reason string respectively.

The OpenSSL error strings should be loaded by calling ERR_load_crypto_strings or, for SSL applications, SSL_load_error_strings first. If there is no text string registered for the given error code, the error string will contain the numeric code.

ERR_print_errors can be used to print all error codes currently in the queue.

# RETURN VALUES

`ERR_error_string()` returns a pointer to a static buffer containing the string if buf == NULL, buf otherwise.

ERR_lib_error_string(), `ERR_func_error_string()` and `ERR_reason_error_string()` return the strings, and NULL if none is registered for the error code.

# SEE ALSO

err, ERR_get_error, ERR_load_crypto_strings, SSL_load_error_strings ERR_print_errors

# HISTORY

`ERR_error_string()` is available in all versions of SSLeay and OpenSSL. `ERR_error_string_n()` was added in OpenSSL 0.9.6.