curl_easy_init - Man Page

Start a libcurl easy session

Synopsis

#include <curl/curl.h>

CURL *curl_easy_init();

Description

This function must be the first function to call, and it returns a CURL easy handle that you must use as input to other functions in the easy interface. This call MUST have a corresponding call to curl_easy_cleanup(3) when the operation is complete.

If you did not already call curl_global_init(3), curl_easy_init(3) does it automatically. This may be lethal in multi-threaded cases, since curl_global_init(3) is not thread-safe, and it may result in resource problems because there is no corresponding cleanup.

You are strongly advised to not allow this automatic behavior, by calling curl_global_init(3) yourself properly. See the description in libcurl(3) of global environment requirements for details of how to use this function.

Example

CURL *curl = curl_easy_init();
if(curl) {
  CURLcode res;
  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
  res = curl_easy_perform(curl);
  curl_easy_cleanup(curl);
}

Availability

Always

Return Value

If this function returns NULL, something went wrong and you cannot use the other curl functions.

See Also

curl_easy_cleanup(3), curl_global_init(3), curl_easy_reset(3), curl_easy_perform(3)

Referenced By

curl_easy_cleanup(3), curl_easy_duphandle(3), curl_easy_perform(3), curl_easy_reset(3), curl_easy_setopt(3), curl_global_init(3), curl_multi_cleanup(3), curl_multi_init(3), libcurl(3), libcurl-easy(3), libcurl-thread(3).

April 26, 2023 libcurl 8.1.2