libcurl屏蔽屏幕打印的方法

在调用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,会报错。

你可能感兴趣的:(c/c++,Libcurl)