【问题标题】:How to set CURL_MAX_WRITE_SIZE in curl?如何在 curl 中设置 CURL_MAX_WRITE_SIZE?
【发布时间】:2016-06-10 11:42:31
【问题描述】:

我无法发送包含大量数据内容的邮件。 执行发送邮件时出现分段错误。 谷歌搜索后发现设置 CURL_MAX_WRITE_SIZE 可以解决问题,但这无法在我的应用程序中设置。 我尝试了以下,

#ifdef CURL_MAX_WRITE_SIZE
#undef CURL_MAX_WRITE_SIZE
#define CURL_MAX_WRITE_SIZE 131072
#endif

而回调函数是

size_t mail_payload_source(void *ptr, size_t size, size_t nmemb, void *userp ){
struct mail_upload_status *upload_ctx = (struct mail_upload_status *)userp;
const char *data;
if((size == 0) || (nmemb == 0) || ((size*nmemb) < 1)) {
  return 0;
}
data = mail_char_ary_of_pntrs[upload_ctx->lines_read];
if(data) {
    size_t len = strlen(data);
    memcpy(ptr, data, len);
    upload_ctx->lines_read++;
    return len;
}
return 0;}

任何人都可以为此提出解决方法吗?

【问题讨论】:

  • 没有足够的上下文让潜在的回答者弄清楚如何帮助您。您的问题与 curl 有什么关系?
  • 在“res = curl_easy_perform(curl);”上出现分段错误

标签: c++ smtp libcurl


【解决方案1】:

通过将CURL_MAX_WRITE_SIZE 的值设置为更高的值重新配置解决了该问题。

【讨论】:

  • 不要将更多的数据复制到目标缓冲区!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
  • 2013-02-15
  • 2014-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多