xref: /curl/docs/libcurl/curl_url_dup.md (revision e3fe0200)
1---
2c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
3SPDX-License-Identifier: curl
4Title: curl_url_dup
5Section: 3
6Source: libcurl
7See-also:
8  - CURLOPT_CURLU (3)
9  - curl_url (3)
10  - curl_url_cleanup (3)
11  - curl_url_get (3)
12  - curl_url_set (3)
13Protocol:
14  - All
15---
16
17# NAME
18
19curl_url_dup - duplicate a URL handle
20
21# SYNOPSIS
22
23~~~c
24#include <curl/curl.h>
25
26CURLU *curl_url_dup(const CURLU *inhandle);
27~~~
28
29# DESCRIPTION
30
31Duplicates the URL object the input *CURLU* *inhandle* identifies and
32returns a pointer to the copy as a new *CURLU* handle. The new handle also
33needs to be freed with curl_url_cleanup(3).
34
35# EXAMPLE
36
37~~~c
38int main(void)
39{
40  CURLUcode rc;
41  CURLU *url = curl_url();
42  CURLU *url2;
43  rc = curl_url_set(url, CURLUPART_URL, "https://example.com", 0);
44  if(!rc) {
45    url2 = curl_url_dup(url); /* clone it! */
46    curl_url_cleanup(url2);
47  }
48  curl_url_cleanup(url);
49}
50~~~
51
52# AVAILABILITY
53
54Added in 7.62.0
55
56# RETURN VALUE
57
58Returns a new handle or NULL if out of memory.
59