NAME

     curl_easy_perform - Perform a file transfer


SYNOPSIS

     #include <curl/curl.h>

     CURLcode curl_easy_perform(CURL *handle);


DESCRIPTION

     This   function  is  called  after  the  init  and  all  the
     curl_easy_setopt() calls are  made,  and  will  perform  the
     transfer  as  described  in  the options.  It must be called
     with the same handle as input  as  the  curl_easy_init  call
     returned.

     libcurl version 7.7 or later (for older versions see below):
     You can do any amount of calls to curl_easy_perform()  while
     using  the  same handle. If you intend to transfer more than
     one file, you are even encouraged to  do  so.  libcurl  will
     then attempt to re-use the same connection for the following
     transfers, thus  making  the  operations  faster,  less  CPU
     intense and using less network resources. Just note that you
     will have to use curl_easy_setopt between the invokes to set
     options for the following curl_easy_perform.

     You  must  never  call this function simultaneously from two
     places using the same handle. Let the function return  first
     before invoking it another time. If you want parallel trans­
     fers, you must use several curl handles.

     Before libcurl version 7.7: You are  only  allowed  to  call
     this  function once using the same handle. If you want to do
     repeated  calls,  you  must   call   curl_easy_cleanup   and
     curl_easy_init again first.


RETURN VALUE

     0  means everything was ok, non-zero means an error occurred
     as <curl/curl.h> defines. If the CURLOPT_ERRORBUFFER was set
     with curl_easy_setopt there will be a readable error message
     in the error buffer when non-zero is returned.


SEE ALSO

     curl_easy_init(3), curl_easy_setopt(3),


BUGS

     Surely there are some, you tell me!







Man(1) output converted with man2html