首先,调用函数curl_global_init()来初始化库函数;记得最后调用curl_global_cleanup()来释放库资源。其次,调用curl_easy_init()来初始化一个句柄,得到一个easy interface型指针;curl_easy_init函数是线程相关的,也就是说不能在一个线程中调用另外一个线程通过curl_easy_init创建的CURL指针。
记得最后要调用curl_easy_cleanup(easy interface);接着,再调用curl_easy_setopt来设置将要访问的网络地址。curl_easy_perform来执行下载。
注意的是:libcurl的全局初始化必须放在线程之外。
1、函数
CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
CURLOPT_WRITEFUNCTION //设置回调函数
回调函数原型为: size_t function( void *ptr, size_t size, size_t nmemb, void *userp);函数将在libcurl接收到数据后被调用。
void *ptr是下载回来的数据.
void *userp是用户指针,用户通过这个指针传输自己的数据。
CURLOPT_WRITEDATA
设置回调函数中的void *userp指针的来源。
CURLOPT_URL
设置访问的URI。
CURLOPT_TIMEOUT
超时时间。
CURLOPT_CONNECTIONTIMEOUT
连接等待时间。
CURLOPT_RANGE
断点续传,指定传输分片,格式:"0-200"
示例代码1

View Code
示例代码2

参考
[1]http://curl.haxx.se/libcurl/c/multithread.html
[2]http://blog.csdn.net/aaa20090987/article/details/7955918
[3]http://hi.baidu.com/445920201/item/99401f1674bf4b5e2a3e22b4
[4]http://blog.chinaunix.net/uid-20692625-id-3203258.html