微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 函数的复用性表现为库

函数的复用性表现为库

时间: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;

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top