C++ 使用Curl ERRORBUFFER的帮助
我有一个使用curl的程序。其中一部分看起来是这样的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
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