📅  最后修改于: 2023-12-03 15:12:24.098000             🧑  作者: Mango
在 C 编程语言中,我们可以使用 HTTP 协议下载文件。通过命令行窗口下载文件可以方便自动化处理,例如批量下载文件等。下面是一个简单的 C 代码片段,可以通过命令行窗口下载一个文件。
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
int main(int argc, char **argv) {
if (argc < 3) {
printf("Usage: %s <url> <filename>\n", argv[0]);
return 1;
}
CURL *curl;
FILE *file;
CURLcode res;
curl = curl_easy_init();
if (curl) {
file = fopen(argv[2], "wb");
curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, file);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
return 1;
}
curl_easy_cleanup(curl);
}
fclose(file);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
在 C 语言中,我们需要引入标准输入输出头文件和 curl 头文件。
if (argc < 3) {
printf("Usage: %s <url> <filename>\n", argv[0]);
return 1;
}
程序需要传入一个 URL 和一个文件名两个参数,如果没有传入则输出命令行使用方式并结束程序。
CURL *curl;
FILE *file;
CURLcode res;
curl = curl_easy_init();
使用 curl_easy_init()
函数初始化 CURL 句柄。
file = fopen(argv[2], "wb");
使用 fopen()
函数打开文件,argv[2]
是我们传入的文件名。
curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, file);
使用 curl_easy_setopt()
函数设置 CURL 参数,CURLOPT_URL
指定要下载的 URL,CURLOPT_WRITEDATA
指定写入的文件。
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
return 1;
}
使用 curl_easy_perform()
函数执行 CURL 请求。如果返回值不是 CURLE_OK
,说明请求失败并输出错误信息。
curl_easy_cleanup(curl);
fclose(file);
使用 curl_easy_cleanup()
函数清理 CURL 资源,使用 fclose()
函数关闭文件。
通过上面的代码,我们可以通过命令行窗口下载一个文件。这个代码只是一个简单的例子,可以根据自己的需要进行修改和定制化。