libcurl-share(3)
π NAME
libcurl-share β how to use the share interface
πΈ DESCRIPTION
Okay bestie, this is the libcurl-share(3) page from the Library Functions Manual, and it's your overview on how to use the libcurl share interface in your C programs. There are specific man pages for each function mentioned in here β yes, each one got its own little spotlight. β¨
All functions in the share interface are prefixed with curl_share.
β¨ OBJECTIVES
The share interface was added to enable sharing of data between curl handles. That's the whole mission, and it ate. π
π ONE SET OF DATA - MANY TRANSFERS
You can have multiple easy handles share data between them. Have them update 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). Literally teamwork, no cap. π«Ά
π¦ SHARE OBJECT
Here's the flow, bestie:
- 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 internal 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
CURLOPT_SHARE(3)option withcurl_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
CURLOPT_SHARE(3)toNULLfor that easy handle. To make a handle stop sharing a particular data, you canCURLSHOPT_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.
Okay but fr fr, that cleanup step is not a vibe to skip β make sure no easy handle is still using the share before you 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)
Mwah π β this is libcurl, dated 2026-10-12, and the page is libcurl-share(3). Byeee, go share responsibly π
π¦ where this page comes from
- fedora 44: libcurl-devel 8.18.0-14.fc44 Β· curl
- fedora 44: libcurl-devel 8.18.0-14.fc44 Β· curl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms