दिलचस्प पोस्ट
सी ऑटो कीवर्ड कहां उपयोग किया जाता है? JQuery के बिना एक्सेस 'डेटा-' विशेषता MySQL में varchar फ़ील्ड संख्यात्मक रूप से छंटनी रनटाइम पर एक छवि का आकार बदलने में गुणवत्ता समस्याएं एक कॉल में कई चर पर कई कार्यों को लागू करने के लिए समेकित का उपयोग करना कैसे trayicon.displayMeyage () माउस को पकड़ने के लिए टूलटिप baloon पर माउस क्लिक करें HTML तालिका सेल स्वरूपित करें ताकि पाठ के रूप में Excel स्वरूप? Utf8_general_ci और utf8_unicode_ci के बीच अंतर क्या है MVC4 मचान नियंत्रक जोड़ें त्रुटि देता है "मेटाडेटा प्राप्त करने में असमर्थ …" TableView से DetailView स्विफ्ट तक डेटा भेजें बहुत बड़े SOAP प्रतिक्रिया – एंड्रॉइड- मेमोरी त्रुटि से बाहर मार्शमॉलो एंड्रॉइड में निर्देशिका निर्माण काम नहीं कर रहा है हेरोकू में 2.3-शैली के प्लग-इन और नापसंद चेतावनियों का कार्य चलाना वर्ग कोष्ठक क्या करते हैं, "", फ़ंक्शन / क्लास दस्तावेज़ीकरण में क्या मतलब है? .NET के लिए सबसे परिपक्व बीडीडी फ्रेमवर्क क्या है?

सी / सी ++ में libcurl का उपयोग करके फ़ाइल डाउनलोड करें

मैं एक अनुप्रयोग (देव-सी ++ का उपयोग कर खिड़कियों पर) का निर्माण कर रहा हूं और मुझे यह फ़ाइल डाउनलोड करना है। मैं यह libcurl (मैं पहले से ही पैकेमैन का उपयोग कर स्रोत कोड स्थापित किया है) का उपयोग कर रहा हूं। मुझे एक काम का उदाहरण मिला ( http://siddhantahuja.wordpress.com/2009/04/12/how-to-download-a-file-from-a-url-and-save-onto-local-directory-in- c-using-libcurl / ) लेकिन यह डाउनलोड पूर्ण होने के बाद फाइल को बंद नहीं करता है। मैं किसी को एक फ़ाइल डाउनलोड करने के लिए एक उदाहरण देना चाहता हूं, या तो सी या सी ++ में अग्रिम में धन्यवाद!

Solutions Collecting From Web of "सी / सी ++ में libcurl का उपयोग करके फ़ाइल डाउनलोड करें"

उदाहरण आप उपयोग कर रहे हैं गलत है। Easy_setopt के लिए मैन पेज देखें उदाहरण में write_data अपनी फाइल का उपयोग करता है, * आउटफ़ाइल, और नहीं fp जो CURLOPT_WRITEDATA में निर्दिष्ट किया गया था। यही कारण है कि एफपी बंद करने की समस्याएं आती हैं – यह भी खोला नहीं गया है।

यह अधिक या कम है कि यह कैसा दिखना चाहिए (परीक्षण के लिए यहां उपलब्ध कोई libcurl नहीं)

#include <stdio.h> #include <curl/curl.h> /* For older cURL versions you will also need #include <curl/types.h> #include <curl/easy.h> */ #include <string> size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) { size_t written = fwrite(ptr, size, nmemb, stream); return written; } int main(void) { CURL *curl; FILE *fp; CURLcode res; char *url = "http://localhost/aaa.txt"; char outfilename[FILENAME_MAX] = "C:\\bbb.txt"; curl = curl_easy_init(); if (curl) { fp = fopen(outfilename,"wb"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); res = curl_easy_perform(curl); /* always cleanup */ curl_easy_cleanup(curl); fclose(fp); } return 0; } 

अपडेट किया गया: जैसा कि @ rsethc types.h और easy.h द्वारा सुझाया गया है वर्तमान cURL संस्करणों में मौजूद नहीं हैं।

बस रुचि रखने वालों के लिए आप पिछले पैरामीटर के रूप में नल गुजरते हुए कस्टम फ़ंक्शन लिखने से बच सकते हैं (यदि आप वापस लौटे डेटा की अतिरिक्त प्रोसेसिंग नहीं करना चाहते हैं)
इस मामले में डिफ़ॉल्ट आंतरिक फ़ंक्शन का उपयोग किया जाता है।

विवरण
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTWRITEDATA

उदाहरण

 #include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; FILE *fp; CURLcode res; char *url = "http://stackoverflow.com"; char outfilename[FILENAME_MAX] = "page.html"; curl = curl_easy_init(); if (curl) { fp = fopen(outfilename,"wb"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); res = curl_easy_perform(curl); curl_easy_cleanup(curl); fclose(fp); } return 0; }