1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 2 "http://www.w3.org/TR/html4/loose.dtd"> 3<html><head> 4<title>curl_easy_perform man page</title> 5<meta name="generator" content="roffit"> 6<STYLE type="text/css"> 7P.level0 { 8 padding-left: 2em; 9} 10 11P.level1 { 12 padding-left: 4em; 13} 14 15P.level2 { 16 padding-left: 6em; 17} 18 19span.emphasis { 20 font-style: italic; 21} 22 23span.bold { 24 font-weight: bold; 25} 26 27span.manpage { 28 font-weight: bold; 29} 30 31h2.nroffsh { 32 background-color: #e0e0e0; 33} 34 35span.nroffip { 36 font-weight: bold; 37 font-size: 120%; 38 font-family: monospace; 39} 40 41p.roffit { 42 text-align: center; 43 font-size: 80%; 44} 45</STYLE> 46</head><body> 47 48<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2> 49<p class="level0">curl_easy_perform - Perform a file transfer <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2> 50<p class="level0"><span Class="bold">#include <curl/curl.h></span> 51<p class="level0"><span Class="bold">CURLcode curl_easy_perform(CURL * easy_handle );</span> 52<p class="level0"><a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2> 53<p class="level0">Invoke this function after <a Class="emphasis" href="/curl_easy_init.html">curl_easy_init</a> and all the <a Class="emphasis" href="/curl_easy_setopt.html">curl_easy_setopt</a> calls are made, and will perform the transfer as described in the options. It must be called with the same <span Class="bold">easy_handle</span> as input as the <a Class="emphasis" href="/curl_easy_init.html">curl_easy_init</a> call returned. 54<p class="level0"><a Class="emphasis" href="/curl_easy_perform.html">curl_easy_perform</a> performs the entire request in a blocking manner and returns when done, or if it failed. For non-blocking behavior, see <a Class="emphasis" href="/curl_multi_perform.html">curl_multi_perform</a>. 55<p class="level0">You can do any amount of calls to <a Class="emphasis" href="/curl_easy_perform.html">curl_easy_perform</a> while using the same <span Class="bold">easy_handle</span>. 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 <a Class="emphasis" href="/curl_easy_setopt.html">curl_easy_setopt</a> between the invokes to set options for the following curl_easy_perform. 56<p class="level0">You must never call this function simultaneously from two places using the same <span Class="bold">easy_handle</span>. Let the function return first before invoking it another time. If you want parallel transfers, you must use several curl easy_handles. 57<p class="level0">While the <span Class="bold">easy_handle</span> is added to a multi handle, it cannot be used by <a Class="emphasis" href="/curl_easy_perform.html">curl_easy_perform</a>. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2> 58<p class="level0">CURLE_OK (0) means everything was ok, non-zero means an error occurred as <span Class="emphasis"><curl/curl.h></span> defines - see <span Class="emphasis">libcurl-errors(3)</span>. If the <span Class="bold">CURLOPT_ERRORBUFFER(3)</span> was set with <a Class="emphasis" href="/curl_easy_setopt.html">curl_easy_setopt</a> there will be a readable error message in the error buffer when non-zero is returned. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2> 59<p class="level0"><a Class="manpage" href="/curl_easy_init.html">curl_easy_init</a> <a Class="manpage" href="/curl_easy_setopt.html">curl_easy_setopt</a> <span Class="manpage"> </span> <a Class="manpage" href="/curl_multi_add_handle.html">curl_multi_add_handle</a> <a Class="manpage" href="/curl_multi_perform.html">curl_multi_perform</a> <span Class="manpage"> </span> <span Class="manpage">libcurl-errors (3)</span> <span Class="manpage"> </span> 60<p class="level0"><p class="roffit"> 61 This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>. 62</body></html> 63