size_t write_data(char *ptr,size_t size,size_t nmemb,void *userData)
{
static int flag = 1;
FILE *fp =fopen("/Users/Kevin/Desktop/test.text","w");
char *data = NULL;
data = ptr;
fwrite(ptr, size, nmemb, fp);
int writeen1 = (int)size * (int)nmemb;
printf("write_data第%d次\n",flag++);
printf("writeen1写入字节数量是 %d\n",writeen1);
printf("data**********:%s",data);
putchar(10);
printf("*********************************************\n");
fclose(fp);
return writeen1;
}
开始回调函数写入文件出现不全问题,以为是libcurl的缓存设置太小,或者链接时间问题。后来参考官网,使用
CURLOPT_VERBOSE 设置为1,就可以看到一些版本和请求信息,十分有用。
后来看到缓存是16k,远远够用啊,那为什么还会写入文件错误呢?发现这个回调函数如果不返回这次写入的数据,则不会继续写入文件,即执行写入函数一次。