libcurl屏蔽屏幕打印的方法

来源:互联网 发布:sql查询去除重复 编辑:程序博客网 时间:2024/06/14 07:48

在调用libcurl进行传输url数据的时候,在执行curl_easy_perform()或者curl_multi_perform()发送数据后,libcurl默认会把获取到的内容输出到控制台上,如果调用频率较大的话,会影响系统的整体性能,因此我们需要将打印屏蔽掉,具体做法有两种:

1、如果打印内容有用,将其写到本地

FILE *outfile;outfile = fopen(filename, "wb");curl_easy_setopt(curl, CURLOPT_WRITEDATA, outfile);res = curl_easy_perform(curl);fclose(outfile);

2、如果打印内容没有用,则将其读取出来舍弃

在curl_easy_perform()、curl_multi_perform()前增加

static size_t cb(char *d, size_t n, size_t l, void *p){  (void)d;  (void)p;  return n*l;}curl_easy_setopt(eh, CURLOPT_WRITEFUNCTION, cb);
设置curl_easy_setopt(eh, CURLOPT_WRITEFUNCTION, cb)告诉libcurl获取到数据后,把数据传给cb函数,然后在函数cb内处理数据,如果不想要打印,在cb函数内不处理数据即可,但是需要返回数据大小,即n*l,如果返回值不等于n*l,会报错。

0 0
原创粉丝点击