C++ 使用Curl ERRORBUFFER的帮助

C++ 使用Curl ERRORBUFFER的帮助,c++,curl,C++,Curl,我有一个使用curl的程序。其中一部分看起来是这样的 char* Error = NULL; Error = (char*)malloc(1024); memset(Error, 0, 1024); .............. curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, Error); curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 3); if(CURLE_OK != curl

我有一个使用curl的程序。其中一部分看起来是这样的

char* Error = NULL;
Error = (char*)malloc(1024);
memset(Error, 0, 1024); 
..............
    curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, Error);
    curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 3);
    if(CURLE_OK != curl_easy_perform( curl)){
        Error[1023] = '\0';
//      cout << "cURL returned: " <<  Error << endl;
    }
    curl_easy_cleanup(curl);
    free(Error);

if条件应该是什么来避免这种情况?

您不能使用std::string来接收错误,因为它没有可写缓冲区

如果您想使用STL而不必处理数组的内存,那么可以使用std::vector

const size_t errBufSize = 1024;
std::vector<char> errBuf( errBufSize );
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &errBuf[0]); 
const size\u t errBufSize=1024;
标准::向量errBuf(errBufSize);
curl_easy_setopt(curl、CURLOPT_ERRORBUFFER和errBuf[0]);
实际的错误可能来自代码的其余部分,例如,如果要向其传递错误缓冲区,则可能还必须向其传递缓冲区大小


我认为“写入正文失败”来自Curl\u write\u回调,返回的字节数与传递给它的字节数不同。

您不能使用std::string来接收错误,因为它没有可写缓冲区

如果您想使用STL而不必处理数组的内存,那么可以使用std::vector

const size_t errBufSize = 1024;
std::vector<char> errBuf( errBufSize );
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &errBuf[0]); 
const size\u t errBufSize=1024;
标准::向量errBuf(errBufSize);
curl_easy_setopt(curl、CURLOPT_ERRORBUFFER和errBuf[0]);
实际的错误可能来自代码的其余部分,例如,如果要向其传递错误缓冲区,则可能还必须向其传递缓冲区大小


我认为“写入正文失败”来自Curl\u write\u回调,返回的字节数与传递给它的字节数不同。

应该使用文档中的注释而不是errBufSize Curl\u ERROR\u SIZE。应该使用文档中的注释而不是errBufSize Curl\u ERROR\u SIZE