新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 函數的復用性表現為庫

        函數的復用性表現為庫

        作者: 時間:2016-11-30 來源:網絡 收藏
        //引入函數頭文件
        #include
        #include
        //用#pragma comment預編譯命令,表示這個程序將使用ibcurld_imp.lib這個庫文件
        #pragma comment(lib,"libcurld_imp.lib")
        //復制將數據寫入文件的回調函數

        size_t write_data(void *ptr, size_t size,size_t nmemb,FILE *stream) {
        int written=fwrite(ptr,size,nmemb,stream);
        return written;
        }
        //使用函數庫提供函數實現的文件下載函數

        CURLcode download( char* url,
        char* out)
        {
        CURL *curl = NULL;
        FILE *fp = NULL;
        CURLcode res;
        //調用函數庫中的curl_easy _init()函數完成初始化
        curl = curl_easy_init();
        if (curl)
        {
        fp=fopen(out,"wb");
        curl_easy_setopt(curl,CURLOPT_URL, url);
        curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION, write_data);
        curl_easy_setopt(curl,CURLOPT_WRITEDATA, fp);

        res=curl_easy_perform(curl);
        curl_easy_cleanup(curl);
        //下載完成,進行最后的清理工作
        fclose(fp);
        return res;
        }
        else
        {
        return CURLE_FAILED_INIT;
        }
        }
        //輔助函數,用于獲取文件名
        void getfilename(char* url, char* name)
        {
        char* pos = strrchr(url,"/");
        if (NULL!=pos)
        {
        strcpy(name,pos+1);
        }
        }


        int main(int argc,char* argv[])
        {
        if (2!=argc)
        {
        puts("usage:gethttp://www.51hei.com/f/keil3.rar");
        return -1;
        }
        char* url = argv[1];
        char name[32];
        getfilename(url,name);
        CURLcode res = download(url,name);
        if(CURLE_OK==res)
        {
        printf("great! download %s as %s succerfully.",url,name);
        }
        else
        {
        printf("sorry:cannot download %s.",url);
        }
        return 0;
        }


        關鍵詞: 函數復用性

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 贵南县| 柞水县| 景洪市| 元朗区| 壤塘县| 泰宁县| 区。| 驻马店市| 邢台市| 临安市| 潢川县| 永登县| 泸水县| 伊通| 凤翔县| 工布江达县| 嘉禾县| 广丰县| 安远县| 连江县| 霍邱县| 扶余县| 三河市| 湟中县| 子长县| 宿松县| 苏尼特左旗| 海门市| 泽普县| 无棣县| 黄陵县| 建平县| 泽库县| 新绛县| 济源市| 什邡市| 滦平县| 诸暨市| 全州县| 永顺县| 岑溪市|