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 curl_easy_se‐
15       topt(3) calls are made, and will perform the transfer as  described  in
16       the  options.  It  must be called with the same easy_handle as input as
17       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 er‐
43       ror 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, "https://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
60libcurl 7.76.1                 November 04, 2020          curl_easy_perform(3)
Impressum