Как упростить способ скачивания файла?
Моя задача написать консольное приложение которое будет скачивать файлы с удаленного сервера. Эту задачу я реализовала с помощью LibCurl. Но я хотела узнать, можно ли реализовать эту затею как нибудь проще ? Может быть использовать другие библиотеки... Или другие методы... В общем я мало в этом понимаю, но знаю чего хочу! Хочу чтобы было всё максимально ёмко и чтобы исполняемый файл не весил так много (2мб) Буду благодарна за помощь :)
#include <stdio.h>
#include <curl/curl.h>
struct FtpFile {
const char* UserT;
FILE* stream;
};
static size_t my_fwrite(void* buffer, size_t size, size_t nmemb, void* stream)
{
struct FtpFile* out = (struct FtpFile*)stream;
if (!out->stream) {
out->stream = fopen(out->UserT, "wb");
if (!out->stream)
return -1;
}
return fwrite(buffer, size, nmemb, out->stream);
}
int main(void)
{
using namespace std;
CURL* curl;
CURLcode res;
struct FtpFile ftpfile = {
"pic3.JPG",
NULL
};
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL,
"ftp://ftp.intel.com/images/UserTroubleshootingPic3.JPG");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &ftpfile);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (CURLE_OK != res) {
fprintf(stderr, "curl told us %d\n", res);
}
}
if (ftpfile.stream)
fclose(ftpfile.stream);
curl_global_cleanup();
return 0;
}