#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);
}