curl cpp

#include <stdio.h>
#include <curl/curl.h>

size_t write_callback(void contents, size_t size, size_t nmemb, void userp) {
    size_t realsize = size * nmemb;
    FILE fp = (FILE )userp;
    return fwrite(contents, size, nmemb, fp);
}

int main() {
    CURL *curl;
    CURLcode res;

    curl_global_init(CURL_GLOBAL_DEFAULT);

    curl = curl_easy_init();

    if(curl) {
        FILE *fp = fopen("downloaded_file.txt", "wb");

        curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/file-to-download.txt");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);

        res = curl_easy_perform(curl);

        curl_easy_cleanup(curl);

        fclose(fp);
    }

    curl_global_cleanup();

    return 0;
}