aboutsummaryrefslogtreecommitdiff
path: root/docs/libcurl/curl_share_init.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/libcurl/curl_share_init.md')
-rw-r--r--docs/libcurl/curl_share_init.md56
1 files changed, 56 insertions, 0 deletions
diff --git a/docs/libcurl/curl_share_init.md b/docs/libcurl/curl_share_init.md
new file mode 100644
index 000000000..553710727
--- /dev/null
+++ b/docs/libcurl/curl_share_init.md
@@ -0,0 +1,56 @@
+---
+c: Copyright (C) Daniel Stenberg, <daniel.se>, et al.
+SPDX-License-Identifier: curl
+Title: curl_share_init
+Section: 3
+Source: libcurl
+See-also:
+ - curl_share_cleanup (3)
+ - curl_share_setopt (3)
+---
+
+# NAME
+
+curl_share_init - Create a shared object
+
+# SYNOPSIS
+
+~~~c
+#include <curl/curl.h>
+
+CURLSH *curl_share_init();
+~~~
+
+# DESCRIPTION
+
+This function returns a pointer to a *CURLSH* handle to be used as input
+to all the other share-functions, sometimes referred to as a share handle in
+some places in the documentation. This init call MUST have a corresponding
+call to curl_share_cleanup(3) when all operations using the share are
+complete.
+
+This *share handle* is what you pass to curl using the
+CURLOPT_SHARE(3) option with curl_easy_setopt(3), to make that
+specific curl handle use the data in this share.
+
+# EXAMPLE
+
+~~~c
+int main(void)
+{
+ CURLSHcode sh;
+ CURLSH *share = curl_share_init();
+ sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT);
+ if(sh)
+ printf("Error: %s\n", curl_share_strerror(sh));
+}
+~~~
+
+# AVAILABILITY
+
+Added in 7.10
+
+# RETURN VALUE
+
+If this function returns NULL, something went wrong (out of memory, etc.)
+and therefore the share object was not created.