|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | ERR_put_error, ERR_add_error_data - record an error | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #include <openssl/err.h> | 
|  |  | 
|  | void ERR_put_error(int lib, int func, int reason, const char *file, | 
|  | int line); | 
|  |  | 
|  | void ERR_add_error_data(int num, ...); | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | ERR_put_error() adds an error code to the thread's error queue. It | 
|  | signals that the error of reason code B<reason> occurred in function | 
|  | B<func> of library B<lib>, in line number B<line> of B<file>. | 
|  | This function is usually called by a macro. | 
|  |  | 
|  | ERR_add_error_data() associates the concatenation of its B<num> string | 
|  | arguments with the error code added last. | 
|  |  | 
|  | L<ERR_load_strings(3)|ERR_load_strings(3)> can be used to register | 
|  | error strings so that the application can a generate human-readable | 
|  | error messages for the error code. | 
|  |  | 
|  | =head1 RETURN VALUES | 
|  |  | 
|  | ERR_put_error() and ERR_add_error_data() return | 
|  | no values. | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)> | 
|  |  | 
|  | =head1 HISTORY | 
|  |  | 
|  | ERR_put_error() is available in all versions of SSLeay and OpenSSL. | 
|  | ERR_add_error_data() was added in SSLeay 0.9.0. | 
|  |  | 
|  | =cut |