码迷,mamicode.com
首页 > 其他好文 > 详细

openssl的错误处理

时间:2015-03-02 20:58:52      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:openssl 错误处理 err.h

熟练使用错误函数对开源库的正确使用特别重要。

下面先给出简单的应用实例:

包含头文件:openssl/err.h

//加载错误信息
ERR_load_ERR_strings();
ERR_load_crypto_strings();
// 获取错误号
unsigned long ulErr = ERR_get_error();
char szErrMsg[1024] = {0};
char *pTmp = NULL;
// 格式:error:errId:库:函数:原因
pTmp = ERR_error_string(ulErr,szErrMsg);

 

其他的信息需要使用到openssl库中丰富的函数,下面给出了28个函数,大家可以自己对照说明来进行应用。

1)    ERR_add_error_data

在本层错误的err_data元素中添加说明信息。该函数一般由各个模块调用,比如可以用它说明什么操作导致了错误。

2)  ERR_clear_error

清除所有的错误信息。如果不清楚所有错误信息,可能会有其他无关错误遗留在ERR_STATE表中。

3)  ERR_error_string/ ERR_error_string_n

根据错误码获取具体的错误信息,包括出错的库、出错的函数以及错误原因。

4)   ERR_free_strings

释放错误信息哈希表;通常在最后调用。

5)   ERR_func_error_string

根据错误号,获取出错的函数信息。

6) ERR_get_err_state_table

获取存放错误的哈希表。

7) ERR_get_error

获取第一个错误号。

8)    ERR_get_error_line

根据错误号,获取错误的行号。

9)    ERR_get_error_line_data

根据错误号,获取出错信息。

10)  ERR_get_implementation

获取错误处理函数,与哈希表操作相关。

       11)ERR_get_state

              获取ERR_STATE表。

       12)ERR_lib_error_string

              根据错误号,获取是哪个库出错。

       13)ERR_load_strings

              加载错误信息,由各个模块调用。

14)ERR_load_ASN1_strings

ERR_load_BIO_strings

ERR_load_BN_strings

ERR_load_BUF_strings

ERR_load_COMP_strings

ERR_load_CONF_strings

ERR_load_CRYPTO_strings

ERR_load_crypto_strings

ERR_load_DH_strings

ERR_load_DSA_strings

ERR_load_DSO_strings

ERR_load_EC_strings

ERR_load_ENGINE_strings

ERR_load_ERR_strings

ERR_load_EVP_strings

ERR_load_OBJ_strings

ERR_load_OCSP_strings

ERR_load_PEM_strings

ERR_load_PKCS12_strings

ERR_load_PKCS7_strings

ERR_load_RAND_strings

ERR_load_RSA_strings

ERR_load_UI_strings

ERR_load_X509_strings

ERR_load_X509V3_strings

各个模块实现的,加载各自错误信息。

       15)ERR_peek_error

              获取第一个错误号。

       16)ERR_peek_error_line

              获取第一个错误的出错行。

17)ERR_peek_error_line_data

       获取第一个错误的行数和错误信息。

18)ERR_peek_last_error

       获取最后一个错误号。

19)ERR_peek_last_error_line

       获取最后一个错误的行号。

20)ERR_peek_last_error_line_data

       获取最后一个错误的行号和错误信息。

21)ERR_print_errors

       将错误信息输出到bio中。

22)ERR_print_errors_cb

       根据用户设置的回调函数来打印错误信息。

23)ERR_print_errors_fp

       将错误打印到FILE中。

24)  ERR_put_error

将错误信息存放到ERR_STATE 表中top指定的错误堆栈(最后的错误)。

25)  ERR_reason_error_string

根据错误号得到错误原因。

26)  ERR_remove_state

删除线程相关的错误信息。

27)  ERR_set_error_data

将错误信息存放到ERR_STATE 表中top指定的错误堆栈(最后的错误)。

28)  ERR_unload_strings

从错误哈希表中删除相关信息。

 

openssl的错误处理

标签:openssl 错误处理 err.h

原文地址:http://blog.csdn.net/hepfei90/article/details/44023467

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!