.\" generated by cd2nroff 0.1 from curl_multi_init.md .TH curl_multi_init 3 "2024-11-09" libcurl .SH NAME curl_multi_init \- create a multi handle .SH SYNOPSIS .nf #include CURLM *curl_multi_init(); .fi .SH DESCRIPTION This function returns a pointer to a \fICURLM\fP handle to be used as input to all the other multi\-functions, sometimes referred to as a multi handle in some places in the documentation. This init call MUST have a corresponding call to \fIcurl_multi_cleanup(3)\fP when the operation is complete. By default, several caches are stored in and held by the multi handle: DNS cache, connection pool, TLS session ID cache and the TLS CA cert cache. All transfers using the same multi handle share these caches. .SH PROTOCOLS This functionality affects all supported protocols .SH EXAMPLE .nf int main(void) { /* init a multi stack */ CURLM *multi = curl_multi_init(); CURL *curl = curl_easy_init(); CURL *curl2 = curl_easy_init(); /* add individual transfers */ curl_multi_add_handle(multi, curl); curl_multi_add_handle(multi, curl2); } .fi .SH AVAILABILITY Added in curl 7.9.6 .SH RETURN VALUE If this function returns NULL, something went wrong and you cannot use the other curl functions. .SH SEE ALSO .BR curl_easy_init (3), .BR curl_global_init (3), .BR curl_multi_add_handle (3), .BR curl_multi_cleanup (3), .BR curl_multi_get_handles (3)