=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)> 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)>, L<ERR_load_strings(3)>

=cut
