Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019

libcurl-easy (3)


libcurl-easy - easy interface overview


Please see following description for synopsis


libcurl(3)                  libcurl easy interface                  libcurl(3)

       libcurl-easy - easy interface overview

       When  using  libcurl's "easy" interface you init your session and get a
       handle (often referred to as an "easy handle"), which you use as  input
       to  the  easy interface functions you use. Use curl_easy_init(3) to get
       the handle.

       You continue by setting all the options you want in the upcoming trans-
       fer,  the most important among them is the URL itself (you can't trans-
       fer anything without a specified URL as you may have figured out  your-
       self). You might want to set some callbacks as well that will be called
       from the library when data is  available  etc.  curl_easy_setopt(3)  is
       used for all this.

       CURLOPT_URL(3)  is  only option you really must set, as otherwise there
       can be no transfer. Another commonly used option is  CURLOPT_VERBOSE(3)
       that  will help you see what libcurl is doing under the hood, very use-
       ful when debugging for example. The curl_easy_setopt(3) man page has  a
       full index of the over 200 available options.

       If  you at any point would like to blank all previously set options for
       a single easy handle, you can call curl_easy_reset(3) and you can  also
       make  a  clone  of  an  easy  handle  (with  all its set options) using

       When all is setup, you tell  libcurl  to  perform  the  transfer  using
       curl_easy_perform(3).   It  will then do the entire operation and won't
       return until it is done (successfully or not).

       After the transfer has been made, you can  set  new  options  and  make
       another  transfer,  or  if  you're done, cleanup the session by calling
       curl_easy_cleanup(3). If you want  persistent  connections,  you  don't
       cleanup  immediately, but instead run ahead and perform other transfers
       using the same easy handle.

       See attributes(7) for descriptions of the following attributes:

       |Availability   | web/curl         |
       |Stability      | Uncommitted      |
       curl_easy_init(3),curl_easy_cleanup(3),curl_easy_setopt(3),    libcurl-
       errors(3), libcurl-multi(3), libcurl(3)

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source    was    downloaded    from    https://github.com/curl/curl/ar-

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.

libcurl                           19 Sep 2014                       libcurl(3)