来自http://curl.haxx.se/libcurl/c/libcurl-tutorial.html:
所以,你编写自己的函数来匹配这个原型:
size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp);
你告诉libcurl通过发出一个来传递所有数据到这个函数 功能类似于:
curl_easy_setopt(easyhandle, CURLOPT_WRITEFUNCTION, write_data);
有人可以解释size
和nmemb
代表的论点吗? size
是响应中的字符数吗?那么nmemb
是什么?
答案 0 :(得分:5)
显然是"size is the size of one data item, nmemb is the number of data items"。我的猜测是它的一些内部实现细节。 实际数据大小=大小* nmemb 。
回调函数的文档:https://curl.haxx.se/libcurl/c/CURLOPT_WRITEFUNCTION.html
示例代码:
https://github.com/curl/curl/blob/master/docs/examples/getinmemory.c
答案 1 :(得分:0)
这是为以下功能而设计的:size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
FILE* out = fopen("out.html", "w");
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)out);
curl_easy_setopt(easyhandle, CURLOPT_WRITEFUNCTION, fwrite);
因此,我们无需为fwrite
添加更多代码!