#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAX_RECV_SPEED_LARGE, curl_off_t maxspeed);
This is not an exact science. libcurl attempts to keep the average speed below the given threshold over a period time.
If you set maxspeed to a value lower than CURLOPT_BUFFERSIZE(3), libcurl might download faster than the set limit initially.
This option doesn't affect transfer speeds done with FILE:// URLs.
CURL *curl = curl_easy_init(); if(curl) { CURLcode ret; curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/"); /* cap the download speed to 31415 bytes/sec */ curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, (curl_off_t)31415); ret = curl_easy_perform(curl); }