libcurl出现CURLcode 23 CURLE_WRITE_ERROR错误

来源:互联网 发布:雪鹰领主法器进阶数据 编辑:程序博客网 时间:2024/05/16 12:47
使用libCURL时调用curl_easy_perform返回的CURLcode为23错误。
查看得知是CURLE_WRITE_ERROR,写文件错误。
估计是使用curl_easy_setopt时设置CURLOPT_WRITEFUNCTION或者CURLWRITEDATA时有问题,结果找了半天也没有发现。
最后发现是够早的WRITEFUNC有问题:
错误:
size_t function(const void *ptr, size_t size, size_t nmemb, const void *stream)
     … … … …
     fwrite(ptr, size, nmemb, (FILE *)stream);
     … … … …
     return 0;
}
返回值出错,正确的返回值应该是文件写入的大小
return size * nmemb;
否则就会报上面的错误。
正确函数:
size_t function(const void *ptr, size_t size, size_t nmemb, const void *stream)
     int ret;
     … … … …
     ret = fwrite(ptr, size, nmemb, (FILE *)stream);
     … … … …
     return ret;
}
这样,在fwrite正确执行时,就不会报错了。
原创粉丝点击