gpt4 book ai didi

c - libcurl c CURLOPT_PROGRESSFUNCTION

转载 作者:太空宇宙 更新时间:2023-11-04 02:13:15 26 4
gpt4 key购买 nike

我需要在 C 中使用 libcurl 了解我的下载状态。我发现我必须使用 CURLOPT_PROGRESSFUNCTION。

int progress_func(void* ptr, double TotalToDownload, double NowDownloaded, 
double TotalToUpload, double NowUploaded)
{
//Bla bla
}

curl_easy_setopt(curl, CURLOPT_NOPROGRESS, FALSE);
curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_func);

我不明白两件事:1) 这个函数 progress_func “多久”被调用一次?2) 如何将其他参数传递给 progress_func 函数?因为我必须在具有可变 url 的文件中写入连接状态(速度、下载总数),所以我必须将此 url 传递给函数。

谢谢

最佳答案

参见 CURLOPT_PROGRESSDATA :

struct my_progress_data_struct
{
/* Some data fields */
};

struct my_progress_data_struct progress_data;

curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, &progress_data);

数据将在进度回调的 ptr 参数中传递。

关于第一个问题,根据API reference回调将“大约每秒一次或更早”被调用。

关于c - libcurl c CURLOPT_PROGRESSFUNCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10946075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com