|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | ERR_get_error, ERR_peek_error, ERR_peek_last_error, | 
|  | ERR_get_error_line, ERR_peek_error_line, ERR_peek_last_error_line, | 
|  | ERR_get_error_line_data, ERR_peek_error_line_data, | 
|  | ERR_peek_last_error_line_data - obtain error code and data | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #include <openssl/err.h> | 
|  |  | 
|  | unsigned long ERR_get_error(void); | 
|  | unsigned long ERR_peek_error(void); | 
|  | unsigned long ERR_peek_last_error(void); | 
|  |  | 
|  | unsigned long ERR_get_error_line(const char **file, int *line); | 
|  | unsigned long ERR_peek_error_line(const char **file, int *line); | 
|  | unsigned long ERR_peek_last_error_line(const char **file, int *line); | 
|  |  | 
|  | unsigned long ERR_get_error_line_data(const char **file, int *line, | 
|  | const char **data, int *flags); | 
|  | unsigned long ERR_peek_error_line_data(const char **file, int *line, | 
|  | const char **data, int *flags); | 
|  | unsigned long ERR_peek_last_error_line_data(const char **file, int *line, | 
|  | const char **data, int *flags); | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | ERR_get_error() returns the earliest error code from the thread's error | 
|  | queue and removes the entry. This function can be called repeatedly | 
|  | until there are no more error codes to return. | 
|  |  | 
|  | ERR_peek_error() returns the earliest error code from the thread's | 
|  | error queue without modifying it. | 
|  |  | 
|  | ERR_peek_last_error() returns the latest error code from the thread's | 
|  | error queue without modifying it. | 
|  |  | 
|  | See L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> for obtaining information about | 
|  | location and reason of the error, and | 
|  | L<ERR_error_string(3)|ERR_error_string(3)> for human-readable error | 
|  | messages. | 
|  |  | 
|  | ERR_get_error_line(), ERR_peek_error_line() and | 
|  | ERR_peek_last_error_line() are the same as the above, but they | 
|  | additionally store the file name and line number where | 
|  | the error occurred in *B<file> and *B<line>, unless these are B<NULL>. | 
|  |  | 
|  | ERR_get_error_line_data(), ERR_peek_error_line_data() and | 
|  | ERR_get_last_error_line_data() store additional data and flags | 
|  | associated with the error code in *B<data> | 
|  | and *B<flags>, unless these are B<NULL>. *B<data> contains a string | 
|  | if *B<flags>&B<ERR_TXT_STRING>. If it has been allocated by OPENSSL_malloc(), | 
|  | *B<flags>&B<ERR_TXT_MALLOCED> is true. | 
|  |  | 
|  | =head1 RETURN VALUES | 
|  |  | 
|  | The error code, or 0 if there is no error in the queue. | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>, | 
|  | L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> | 
|  |  | 
|  | =head1 HISTORY | 
|  |  | 
|  | ERR_get_error(), ERR_peek_error(), ERR_get_error_line() and | 
|  | ERR_peek_error_line() are available in all versions of SSLeay and | 
|  | OpenSSL. ERR_get_error_line_data() and ERR_peek_error_line_data() | 
|  | were added in SSLeay 0.9.0. | 
|  | ERR_peek_last_error(), ERR_peek_last_error_line() and | 
|  | ERR_peek_last_error_line_data() were added in OpenSSL 0.9.7. | 
|  |  | 
|  | =cut |