title: How to timeout a libcurl C++ call and/or know when a timeout has happened in the call
body: <p>I'm trying to download remote html pages with my C++ program, however with some URLs a timeout occurs, but I don't know how to handle this, so the program will just hang indefinatly.</p>
  
  <pre><code>virtual void downloadpage(string pageaddress) {
      CURL *curl;
          CURLcode informationdownloaded;
          curl = curl_easy_init();
          if (curl) { 
              curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
              curl_easy_setopt(curl, CURLOPT_URL, pageaddress.c_str());
              curl_easy_setopt(curl, CURLOPT_HEADER, 0);
              curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
              curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writepageinformation);
              curl_easy_setopt(curl, CURLOPT_WRITEDATA, &amp;pageinformation);
              informationdownloaded = curl_easy_perform(curl);
              curl_easy_cleanup(curl);
      }
  }
  </code></pre>
  
  <p>Here is my function for downloading the html source of a page into a string variable called "pageinformation" via the "writepageinformation" function.</p>