<pclass="level0">This function will return a new curl handle, a duplicate, using all the options previously set in the input curl <spanClass="emphasis">handle</span>. Both handles can subsequently be used independently and they must both be freed with <aclass="emphasis"href="./curl_easy_cleanup.html">curl_easy_cleanup(3)</a>.
<pclass="level0">All strings that the input handle has been told to point to (as opposed to copy) with previous calls to <aclass="emphasis"href="./curl_easy_setopt.html">curl_easy_setopt(3)</a> using char * inputs, will be pointed to by the new handle as well. You must therefore make sure to keep the data around until both handles have been cleaned up.
<pclass="level0">The new handle will <spanClass="bold">not</span> inherit any state information, no connections, no SSL sessions and no cookies.
<pclass="level0"><spanClass="bold">Note</span> that even in multi-threaded programs, this function must be called in a synchronous way, the input handle may not be in use when cloned. <aname="RETURN"></a><h2class="nroffsh">RETURN VALUE</h2>
<pclass="level0">If this function returns NULL, something went wrong and no valid handle was returned. <aname="SEE"></a><h2class="nroffsh">SEE ALSO</h2>