⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftpget.c

📁 专门介绍网络爬虫设计的论文,写得非常好啊.希望大家好好学习
💻 C
字号:
/***************************************************************************** *                                  _   _ ____  _ *  Project                     ___| | | |  _ \| | *                             / __| | | | |_) | | *                            | (__| |_| |  _ <| |___ *                             \___|\___/|_| \_\_____| * * $Id: ftpget.c,v 1.4 2004/08/23 14:22:52 bagder Exp $ */#include <stdio.h>#include <curl/curl.h>#include <curl/types.h>#include <curl/easy.h>/* * This is an example showing how to get a single file from an FTP server. * It delays the actual destination file creation until the first write * callback so that it won't create an empty file in case the remote file * doesn't exist or something else fails. */struct FtpFile {  char *filename;  FILE *stream;};int my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream){  struct FtpFile *out=(struct FtpFile *)stream;  if(out && !out->stream) {    /* open file for writing */    out->stream=fopen(out->filename, "wb");    if(!out->stream)      return -1; /* failure, can't open file to write */  }  return fwrite(buffer, size, nmemb, out->stream);}int main(void){  CURL *curl;  CURLcode res;  struct FtpFile ftpfile={    "curl.tar.gz", /* name to store the file as if succesful */    NULL  };  curl_global_init(CURL_GLOBAL_DEFAULT);  curl = curl_easy_init();  if(curl) {    /*     * Get curl 7.9.2 from sunet.se's FTP site. curl 7.9.2 is most likely not     * present there by the time you read this, so you'd better replace the     * URL with one that works!     */    curl_easy_setopt(curl, CURLOPT_URL,                     "ftp://ftp.sunet.se/pub/www/utilities/curl/curl-7.9.2.tar.gz");    /* Define our callback to get called when there's data to be written */    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);    /* Set a pointer to our struct to pass to the callback */    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &ftpfile);    /* Switch on full protocol/debug output */    curl_easy_setopt(curl, CURLOPT_VERBOSE, TRUE);    res = curl_easy_perform(curl);    /* always cleanup */    curl_easy_cleanup(curl);    if(CURLE_OK != res) {      /* we failed */      fprintf(stderr, "curl told us %d\n", res);    }  }  if(ftpfile.stream)    fclose(ftpfile.stream); /* close the local file */  curl_global_cleanup();  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -