<pclass="level0">This function must be the first function to call, and it returns a CURL easy handle that you must use as input to other easy-functions. curl_easy_init initializes curl and this call <spanClass="bold">MUST</span> have a corresponding call to <aclass="emphasis"href="./curl_easy_cleanup.html">curl_easy_cleanup(3)</a> when the operation is complete.
<pclass="level0">If you did not already call <aclass="emphasis"href="./curl_global_init.html">curl_global_init(3)</a>, <aclass="emphasis"href="./curl_easy_init.html">curl_easy_init(3)</a> does it automatically. This may be lethal in multi-threaded cases, since <aclass="emphasis"href="./curl_global_init.html">curl_global_init(3)</a> is not thread-safe, and it may result in resource problems because there is no corresponding cleanup.
<pclass="level0">You are strongly advised to not allow this automatic behaviour, by calling <aclass="emphasis"href="./curl_global_init.html">curl_global_init(3)</a> yourself properly. See the description in <spanClass="bold">libcurl</span>(3) of global environment requirements for details of how to use this function.
<pclass="level0">If this function returns NULL, something went wrong and you cannot use the other curl functions. <aname="SEE"></a><h2class="nroffsh">SEE ALSO</h2>