1curl_easy_perform(3) libcurl Manual curl_easy_perform(3)
2
3
4
6 curl_easy_perform - perform a blocking file transfer
7
9 #include <curl/curl.h>
10
11 CURLcode curl_easy_perform(CURL *easy_handle);
12
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
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
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
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.69.1 September 23, 2018 curl_easy_perform(3)