curlでページを読み込みソースを表示する。
質問しますよろしくお願いします。
C言語でCURLを使用しウェブページを読み込み出力したいのですが、上手く行かず困っています。
以下コードになります。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "curl/curl.h"
struct Buffer{
char *data;
int data_size;
};
size_t buffer_writer(char *ptr,size_t size,size_t nmemb,void *stream){
struct Buffer *buf = (struct Buffer *)stream;
char block = size * nmemb;
if(!buf)return block ;
if (!buf->data) {
buf->data = (char *)malloc(block);
}else{
buf->data = (char *)realloc(buf->data,buf->data_size + size);
}
if(buf->data){
memcpy(buf->data,ptr,block);
buf->data_size += block;
}
printf("end");
return block;
}
int main(int argc, const char * argv[]) {
struct Buffer *buf;
buf = (struct Buffer*)malloc(sizeof(struct Buffer));
buf->data = NULL;
buf->data_size = 0;
CURL *curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL,"https://www.yahoo.co.jp/");
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,buf);
curl_easy_setopt(curl,CURLOPT_HEADER,buffer_writer);
curl_easy_cleanup(curl);
printf("%d",buf->data_size);
free(buf->data);
free(buf);
return EXIT_SUCCESS;
}
おかしなところがあれば、ご指摘をいただきたいです。
この状態の結果は『0』です。