1curl_easy_perform(3)            libcurl Manual            curl_easy_perform(3)
2
3
4

NAME

6       curl_easy_perform - perform a blocking file transfer
7

SYNOPSIS

9       #include <curl/curl.h>
10
11       CURLcode curl_easy_perform(CURL *easy_handle);
12

DESCRIPTION

14       Invoke    this   function   after   curl_easy_init(3)   and   all   the
15       curl_easy_setopt(3) calls are made, and will perform  the  transfer  as
16       described  in  the options. It must be called with the same easy_handle
17       as input as the curl_easy_init(3) call returned.
18
19       curl_easy_perform(3) performs the entire request in a  blocking  manner
20       and  returns when done, or if it failed. For non-blocking behavior, see
21       curl_multi_perform(3).
22
23       You can do any amount of calls to curl_easy_perform(3) while using  the
24       same easy_handle. If you intend to transfer more than one file, you are
25       even encouraged to do so. libcurl will then attempt to re-use the  same
26       connection  for  the  following  transfers,  thus making the operations
27       faster, less CPU intense and using less network  resources.  Just  note
28       that  you  will  have to use curl_easy_setopt(3) between the invokes to
29       set options for the following curl_easy_perform.
30
31       You must never call this function simultaneously from two places  using
32       the  same easy_handle. Let the function return first before invoking it
33       another time. If you want parallel transfers, you must use several curl
34       easy_handles.
35
36       While  the easy_handle is added to a multi handle, it cannot be used by
37       curl_easy_perform(3).
38

RETURN VALUE

40       CURLE_OK (0) means everything was ok, non-zero means an error  occurred
41       as <curl/curl.h> defines - see libcurl-errors(3). If the CURLOPT_ERRORā€
42       BUFFER(3) was set with curl_easy_setopt(3) there  will  be  a  readable
43       error message in the error buffer when non-zero is returned.
44

EXAMPLE

46       CURL *curl = curl_easy_init();
47       if(curl) {
48         CURLcode res;
49         curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
50         res = curl_easy_perform(curl);
51         curl_easy_cleanup(curl);
52       }
53

SEE ALSO

55       curl_easy_init(3),    curl_easy_setopt(3),    curl_multi_add_handle(3),
56       curl_multi_perform(3), libcurl-errors(3),
57
58
59
60
61libcurl 7.61.1                   May 02, 2016             curl_easy_perform(3)
Impressum