【发布时间】:2019-03-05 18:36:12
【问题描述】:
我不知道如何使用 curl 库下载 .exe 文件。 我搜索了整个互联网,发现只有这个代码:
int main(void)
{
CURL *curl;
FILE *fp;
CURLcode res;
char *url = "http://stackoverflow.com";
char outfilename[FILENAME_MAX] = "page.html";
curl = curl_easy_init();
if (curl)
{
fp = fopen(outfilename,"wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}
问题是此代码仅下载页面代码。但是如何从云端(如google drive / GitHub)下载.exe/txt文件呢?
提前感谢您的回答。
【问题讨论】:
-
寻求教程对于 StackOverflow 来说是题外话。在任何情况下,您都可以使用相同的代码,您只需要提供一个实际直接指向您要下载的文件的 URL,而不是指向某个 html 页面。我认为您需要了解 URL 的实际工作原理。
-
真的吗?只需将“xxxx.html”编辑为“xxxx.exe”?我会努力做到的!感谢您的回复!
-
您将
NULL传递给CURLOPT_WRITEFUNCTION。您想要的是一个将写入fp的函数。看看here。 -
当我从任何页面下载图片时,该代码都有效。 exe (dropbox) 文件仍然下载 HTML 代码@RemyLebeau
-
@super 如果您将
NULL作为CURLOPT_WRITEFUNCTION传递,则默认操作是将数据写入CURLOPT_WRITEDATA提供的文件描述符,在这种情况下为fp。