Get a single file from an FTP server.
阿新 • • 發佈:2018-12-20
#include <stido.h> #include <curl/curl.h> struct FtpFile { const char* filename; FILE* stream; }; static size_t my_fwrite(void* buffer, size_t size, size_t nmemb, void* stream) { struct FtpFile* out = (struct FtpFile*)stream; if(out && !out->stream) { out->stream = fopen(out->filename, "wb"); if(!out->stream) return -1; } } return fwrite(buffer, size, nmemb, stream); } int main() { CURL* curl; CURLcode res; struct FtpFile ftpfile = { "/root/curl/push/curl.tar.gz/", NULL }; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "ftp://user:
[email protected]/pk.txt"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite); curl_easy_setopt(curl, CURLOPT_WRITEDARA, &ftpfile); curl_easy_Setopt(curl, CURLOPT_VERBOSE, 1L); res = curl_easy_perform(curl); curl_easy_cleanup(curl); if(CURLE_OK != res) { fprintf(stderr, "curl told us %d\n", res); } } if(ftpfile.stream) { fclose(ftpfile.stream); } curl_global_cleanup(); return 0; }
然後通過虛擬機器裡面的安裝的linux系統ping主機,如果能夠ping通 說明linux能夠訪問由主機(自個電腦)搭建的伺服器,現在需要你的虛擬機器下的linux系統要有兩個環境,
一個是gcc 方法如下:
一個是libcurl 方法如下:
安裝好之後就可以通過vim編寫c++程式碼了,這個程式碼主要功能是通過程式碼從FTP伺服器上下載單一檔案,主要要考慮到檔案下載後的儲存位置和名字,檔案的下載路徑和伺服器的賬號及密碼。https://curl.haxx.se/libcurl網站程式碼開源,這只是一個簡單的例子,大家可以借鑑學習。