1--- 2c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 3SPDX-License-Identifier: curl 4Title: curl_multi_init 5Section: 3 6Source: libcurl 7See-also: 8 - curl_easy_init (3) 9 - curl_global_init (3) 10 - curl_multi_add_handle (3) 11 - curl_multi_cleanup (3) 12 - curl_multi_get_handles (3) 13Protocol: 14 - All 15--- 16 17# NAME 18 19curl_multi_init - create a multi handle 20 21# SYNOPSIS 22 23~~~c 24#include <curl/curl.h> 25 26CURLM *curl_multi_init(); 27~~~ 28 29# DESCRIPTION 30 31This function returns a pointer to a *CURLM* handle to be used as input to 32all the other multi-functions, sometimes referred to as a multi handle in some 33places in the documentation. This init call MUST have a corresponding call to 34curl_multi_cleanup(3) when the operation is complete. 35 36# EXAMPLE 37 38~~~c 39int main(void) 40{ 41 /* init a multi stack */ 42 CURLM *multi = curl_multi_init(); 43 CURL *curl = curl_easy_init(); 44 CURL *curl2 = curl_easy_init(); 45 46 /* add individual transfers */ 47 curl_multi_add_handle(multi, curl); 48 curl_multi_add_handle(multi, curl2); 49} 50~~~ 51 52# AVAILABILITY 53 54Added in 7.9.6 55 56# RETURN VALUE 57 58If this function returns NULL, something went wrong and you cannot use the 59other curl functions. 60