informationdownloaded = curl_easy_perform(curl);
Вы также можете указать тайм-аут для загрузки
curl_easy_setopt(hCurl, CURLOPT_TIMEOUT, iTimeoutSeconds); // timeout for the URL to download
Это заблокированный вызов, пока весь файл не будет загружен.Если вы хотите прервать заблокированный вызов (чтобы сигнал был убит), установите обратный вызов процесса, как показано ниже
curl_easy_setopt(hCurl, CURLOPT_NOPROGRESS, 0);
curl_easy_setopt(hCurl, CURLOPT_PROGRESSFUNCTION, progress_callback);
curl_easy_setopt(hCurl, CURLOPT_PROGRESSDATA, this);
static int progress_callback(void *clientp,
double dltotal,
double dlnow,
double ultotal,
double ulnow)
{
CLASS &obj = *(CLASS*)clientp;
if (obj.exit)
return 1; // if u want the signal curl to unblock and return from curl_easy_perform
return 0; // if u want the callback to continue
}