1)安装libcurl相关依赖
sudo apt-get update
sudo apt-get install libcurl4-openssl-dev
2)
#include <stdio.h>
#include <curl/curl.h>
// 回调函数用于将下载的数据写入文件
size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp) {
FILE *file = (FILE *)userp;
if (file == NULL) {
return 0;
}
return fwrite(contents, size, nmemb, file);
}
int main(void) {
CURL *curl;
FILE *file;
CURLcode res;
// 初始化 libcurl
curl_global_init(CURL_GLOBAL_DEFAULT);
// 创建一个新的 CURL 句柄
curl = curl_easy_init();
if (curl) {
// 设置要下载的文件的 URL
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/path/to/your/file.txt");
// 打开要写入的文件
file = fopen("downloaded_file.txt", "wb");
if (file) {
// 设置回调函数,将下载的数据写入文件
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, file);
// 执行下载操作
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
// 关闭文件
fclose(file);
} else {
fprintf(stderr, "Failed to open file for writing.\n");
}
// 清理并释放资源
curl_easy_cleanup(curl);
} else {
fprintf(stderr, "Failed to initialize curl.\n");
}
// 全局清理
curl_global_cleanup();
return 0;
}
3)编译和运行
gcc -o download download.c -lcurl