2010-08-12 24 views
5

Estoy expandiendo de Perl a C y estoy tratando de usar la biblioteca de curl para simplemente guardar un archivo desde una URL remota, pero me está costando encontrar un buen ejemplo para trabajar de.Guardar un archivo usando libcurl en C

Además, no estoy seguro de si debería usar curl_easy_recv o curl_easy_perform

Respuesta

6

encuentro this resource muy amigable desarrollador.

He compilado el código fuente a continuación con:

gcc demo.c -o demo -I/usr/local/include -L/usr/local/lib -lcurl 

Básicamente, se descargará un archivo y guardarlo en su disco duro.

Archivo demo.c

#include <curl/curl.h> 
#include <stdio.h> 

void get_page(const char* url, const char* file_name) 
{ 
    CURL* easyhandle = curl_easy_init(); 

    curl_easy_setopt(easyhandle, CURLOPT_URL, url) ; 

    FILE* file = fopen(file_name, "w"); 

    curl_easy_setopt(easyhandle, CURLOPT_WRITEDATA, file) ; 

    curl_easy_perform(easyhandle); 

    curl_easy_cleanup(easyhandle); 

    fclose(file); 

} 

int main() 
{ 
    get_page("http://blog.stackoverflow.com/wp-content/themes/zimpleza/style.css", "style.css") ; 

    return 0; 
} 

Además, creo que su pregunta es similar a éste:

Download file using libcurl in C/C++

+0

código actualizado que compila bajo gcc. – karlphillip

+0

Cada vez que hago esto, obtengo los encabezados en la parte superior de mi archivo en los que guardo. ¿Hay alguna forma de evitar esto? 'HTTP/1.1 200 OK Servidor: nginx/1.4.1 Fecha: Jue, 01 de mayo de 2014 16:56:21 GMT Tipo de contenido: text/html; charset = utf-8 Content-Length: 7625 Conexión: keep-alive' – srchulo

+0

No importa. Encontré la solución aquí: http://stackoverflow.com/questions/5142869/how-to-remove-http-headers-from-curl-response – srchulo