0

我已经编写了代码,它适用于最大 2 GB 的数据下载。如果数据大于 2GB,它将不起作用..请告诉我解决方案,因为我发现了很多但没有得到适当的答案。

我正在编写一些小代码片段以供参考。它不是完整代码...我认为目标目标文件系统是 EXT4。

curl_global_init(CURL_GLOBAL_ALL);
m_curl = curl_easy_init();  

curl_easy_setopt(m_curl, CURLOPT_LOW_SPEED_LIMIT,1048L);
curl_easy_setopt(m_curl, CURLOPT_LOW_SPEED_TIME, 30L);

curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, write_data);

size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {

size_t written;

    written = fwrite(ptr, size, nmemb, stream);
    return written;
}

curl_easy_setopt(m_curl, CURLOPT_WRITEDATA, fp);

curl_easy_setopt(m_curl, CURLOPT_WRITEHEADER, NULL);

curl_easy_setopt(m_curl, CURLOPT_NOPROGRESS, 0L);
curl_easy_setopt(m_curl, CURLOPT_SSL_VERIFYHOST, 0L);
curl_easy_setopt(m_curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(m_curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(m_curl, CURLOPT_NOSIGNAL, 1L);
curl_easy_setopt(m_curl, CURLOPT_FOLLOWLOCATION, 1L);

请给我答案。

4

1 回答 1

0

尝试curl -V在命令行中尝试。如果生成的文本不包含该单词Largefile,那么您使用的 curl 版本不支持大于 2 GB 的文件大小。

这个答案有更多有用的信息。

于 2013-11-12T10:47:04.763 回答