Как упростить способ скачивания файла?

Моя задача написать консольное приложение которое будет скачивать файлы с удаленного сервера. Эту задачу я реализовала с помощью 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;

}

Ответы (0 шт):