为此函数给出的参数与CURLOPT_WRITEFUNCTION
. CURLOPT_WRITEFUNCTION
像这样的参数size_t function( char *ptr, size_t size, size_t nmemb, void *userdata);
所以,如果我们假设你有一个大致像这样的 writefunction:
size_t write_data( char *ptr, size_t size, size_t nmemb, void *userdata);
{
ofstream& outstream = ???;
...
outstream.write(ptr, size * nmemb);
...
}
那么userdata
应该是你可以从中创建的东西ofstream&
。
我会传递的地址outfile
。
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &outfile);
然后 write_data 函数变成这样:
size_t write_data( char *ptr, size_t size, size_t nmemb, void *userdata);
{
ofstream& outstream = *reinterpret_cast<ofstream*>(userdata);
...
outstream.write(ptr, size * nmemb);
...
}
参考:http ://curl.haxx.se/libcurl/c/curl_easy_setopt.html