Vá até o endereço:
e baixe uma versão da cURL.
Eu baixei a 7.21.2 (curl-7.21.2.tar.gz). Se preferir, você pode baixar através do comando:
wget http://curl.haxx.se/download/curl-7.21.2.tar.gz
Após baixar vamos descompactar o pacote:
tar -vzxf curl-7.21.2.tar.gz
Após descompactar, vamos até o diretório que acaba de ser criado:
cd curl-7.21.2
Lá temos os seguintes arquivos:
ls
acinclude.m4 config.log depcomp m4 README
aclocal.m4 config.status docs MacOSX-Framework RELEASE-NOTES
Android.mk config.sub include Makefile sample.emacs
buildconf configure install-sh Makefile.am src
CHANGES configure.ac lib Makefile.in tests
CMake COPYING libcurl.pc maketgz vc6curl.dsw
CMakeLists.txt curl-config libcurl.pc.in missing
compile curl-config.in libtool mkinstalldirs
config.guess curl-style.el ltmain.sh packages
Como você pode ver, temos o arquivo README, é interessante que você o leia, nele você pode achar as instruções e outras informações necessárias.
Voltando à instalação, logue-se como super-usuário (root):
su root
E logo após, vamos checar se está tudo ok:
# ./configure
Após isto, mande um:
# make
E logo após um:
# make install
Pronto! Estamos prontos para começar a programar.
Mas antes, vamos ver se conseguimos fazer o programa sem fazer o uso da cURL:
gambi.c:
/* filename: gambi.c */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("Baixando o arquivo... ");
system("wget www.vivaolinux.com.br");
}
gcc gambi.c -o lixo && ./lixo
Ruim demais, não acham ?!
Vamos fazer algo direito então...
Crie um novo arquivo:
touch foo.c
Este arquivo, o 'foo.c' será onde faremos o trabalho com a cURL.
vi foo.c
Um pequeno exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
/* aqui você altera pelo diretório
de sua preferência */
#define file "/home/andre/Desktop/pagina.html"
int main() {
char url[60];
CURL *curl;
CURLcode curl_res;
CURLINFO info;
long http_code;
double c_length;
FILE *tmp;
tmp=fopen(file, "w");
if(tmp==NULL) {
printf("Erro ao abrir o arquivo: %s\n",file);
exit(2);
}
printf("Iniciando...\n");
curl = curl_easy_init();
printf("Entre com a url do arquivo a ser baixado:\n");
scanf("%s",&url);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, tmp);
printf("Baixando arquivo...\n");
curl_res = curl_easy_perform(curl);
if(curl_res==0) {
printf("Arquivo baixado!\n");
} else {
printf("Houve um erro ao baixar o arquivo!\n");
fclose(tmp);
curl_easy_cleanup(curl);
}
printf("Fechando sessao...\n");
fclose(tmp);
curl_easy_cleanup(curl);
return 0;
}
Salve o arquivo e feche-o. Após isso, compile-o com:
gcc foo.c -o foo -lcurl
E execute-o:
./foo
Ele irá lhe pedir o endereço de um site (ou página), após você fornecer, ele baixa o arquivo e salva em /home/andre/Desktop com o nome pagina.html.
É isso!
Você pode encontrar alguns códigos com a cURL em:
E um tutorial na documentação. Espero que tenham gostado, desculpem qualquer erro ou coisa do gênero.
André,
@andrezc1
[]'s