Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何正确处理OpenSSL错误(BIO)_C++_Openssl - Fatal编程技术网

C++ 如何正确处理OpenSSL错误(BIO)

C++ 如何正确处理OpenSSL错误(BIO),c++,openssl,C++,Openssl,示例代码: BIO* bio = BIO_new_file(file_name, "rb"); if (!bio) { unsigned long err = ERR_peek_last_error() // err == 0 所以BIO为NULL,错误代码也为0。 哪种是openssl错误处理的正确方法?在我们的例子中,openssl似乎是使用“no stdio”选项构建的。这导致了这样的行为有趣@MattCaswell刚刚谈到了BIO中的一些异常行为,其中BIO不会设置错误

示例代码:

BIO* bio = BIO_new_file(file_name, "rb");
if (!bio)
{
    unsigned long err = ERR_peek_last_error()
    // err == 0
所以BIO为NULL,错误代码也为0。
哪种是openssl错误处理的正确方法?

在我们的例子中,openssl似乎是使用“no stdio”选项构建的。这导致了这样的行为

有趣@MattCaswell刚刚谈到了
BIO
中的一些异常行为,其中BIO不会设置错误代码。也许这是一个相关的问题。