Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
libcurl-share(3)	    Library Functions Manual		libcurl-share(3)

NAME
     libcurl-share - how to use the share interface

DESCRIPTION
     This  is  an  overview  on how to use the libcurl share interface in your C
     programs. There are specific man pages for each function mentioned in here.

     All functions in the share interface are prefixed with curl_share.

OBJECTIVES
     The share interface was added to enable sharing of data between  curl  han-
     dles.

ONE SET OF DATA - MANY TRANSFERS
     You  can  have multiple easy handles share data between them. Have them up-
     date and use the same cookie database, DNS cache, TLS session cache  and/or
     connection  cache. This way, each single transfer takes advantage from data
     updates made by the other transfer(s).

SHARE OBJECT
     You create a shared object with curl_share_init(3). It returns a handle for
     a newly created one.

     You tell the shared object  what  data  you  want	it  to	share  by  using
     curl_share_setopt(3).

     Since  you can use this share from multiple threads, and libcurl has no in-
     ternal thread synchronization, you must provide mutex callbacks if you  are
     using   this  multi-threaded.  You  set  lock  and  unlock  functions  with
     curl_share_setopt(3) too.

     Then, you make an	easy  handle  to  use  this  share,  you  set  the  CUR-
     LOPT_SHARE(3)  option  with  curl_easy_setopt(3), and pass in share handle.
     You can make any number of easy handles share the same share handle.

     To make an easy handle stop using	that  particular  share,  you  set  CUR-
     LOPT_SHARE(3) to NULL for that easy handle. To make a handle stop sharing a
     particular data, you can CURLSHOPT_UNSHARE(3) it.

     When  you	are done using the share, make sure that no easy handle is still
     using it, and call curl_share_cleanup(3) on the handle.

SEE ALSO
     curl_share_cleanup(3), curl_share_init(3),  curl_share_setopt(3),	libcurl-
     easy(3), libcurl-errors(3), libcurl-multi(3)

libcurl 			   2026-06-11			libcurl-share(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libcurl-share&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help