curl 以http方式读取文件并保存

来源:互联网 发布:淘宝开店需要多少保证金 编辑:程序博客网 时间:2024/05/21 10:09

以下为主函数代码:

void main(){    //initialization    CURL *curl;    CURLcode res;    curl = curl_easy_init();        if(curl){        //define file for store downloaded file        FILE* fp;        fp = fopen( "c:/test.rar", "wb");        string fileurl = "http://localhost/files/test.rar";        curl_easy_setopt(curl, CURLOPT_URL, fileurl.c_str() );                /* Define our callback to get called when there's data to be written */         curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curlCallBackFileWrite);        /* Set a pointer to our struct to pass to the callback */         curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);        res = curl_easy_perform(curl);                //always close file        fclose(fp);        }    }        //always cleanup    curl_easy_cleanup(curl);}

以下为 curlCallBackFileWrite 回调处理:

static size_t curlCallBackFileWrite(void *buffer, size_t size, size_t nmemb, void *stream){    int written = fwrite(buffer, size, nmemb , (FILE *)stream);     return written; }

完。
这当然也可以存储页面文件。
curl 的功能还有很多,比如FTP,SSL等,可以参考官方示例
链接:http://curl.haxx.se/libcurl/c/example.html