Imported Upstream version 7.59.0
[platform/upstream/curl.git] / docs / libcurl / curl_easy_cleanup.3
1 .\" **************************************************************************
2 .\" *                                  _   _ ____  _
3 .\" *  Project                     ___| | | |  _ \| |
4 .\" *                             / __| | | | |_) | |
5 .\" *                            | (__| |_| |  _ <| |___
6 .\" *                             \___|\___/|_| \_\_____|
7 .\" *
8 .\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
9 .\" *
10 .\" * This software is licensed as described in the file COPYING, which
11 .\" * you should have received as part of this distribution. The terms
12 .\" * are also available at https://curl.haxx.se/docs/copyright.html.
13 .\" *
14 .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
15 .\" * copies of the Software, and permit persons to whom the Software is
16 .\" * furnished to do so, under the terms of the COPYING file.
17 .\" *
18 .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 .\" * KIND, either express or implied.
20 .\" *
21 .\" **************************************************************************
22 .\"
23 .TH curl_easy_cleanup 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
24
25 .SH NAME
26 curl_easy_cleanup - End a libcurl easy handle
27 .SH SYNOPSIS
28 .B #include <curl/curl.h>
29
30 .BI "void curl_easy_cleanup(CURL *" handle ");"
31 .SH DESCRIPTION
32 This function must be the last function to call for an easy session. It is the
33 opposite of the \fIcurl_easy_init(3)\fP function and must be called with the
34 same \fIhandle\fP as input that a \fIcurl_easy_init(3)\fP call returned.
35
36 This might close all connections this handle has used and possibly has kept
37 open until now - unless it was attached to a multi handle while doing the
38 transfers. Don't call this function if you intend to transfer more files,
39 re-using handles is a key to good performance with libcurl.
40
41 Occasionally you may get your progress callback or header callback called from
42 within \fIcurl_easy_cleanup(3)\fP (if previously set for the handle using
43 \fIcurl_easy_setopt(3)\fP). Like if libcurl decides to shut down the
44 connection and the protocol is of a kind that requires a command/response
45 sequence before disconnect. Examples of such protocols are FTP, POP3 and IMAP.
46
47 Any use of the \fBhandle\fP after this function has been called and have
48 returned, is illegal. \fIcurl_easy_cleanup(3)\fP kills the handle and all
49 memory associated with it!
50
51 For libcurl versions before 7.17,: after you've called this function, you can
52 safely remove all the strings you've previously told libcurl to use, as it
53 won't use them anymore now.
54 .SH RETURN VALUE
55 None
56 .SH EXAMPLE
57 .nf
58 CURL *curl = curl_easy_init();
59 if(curl) {
60   CURLcode res;
61   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
62   res = curl_easy_perform(curl);
63   curl_easy_cleanup(curl);
64 }
65 .fi
66 .SH "SEE ALSO"
67 .BR curl_easy_init "(3), " curl_easy_duphandle "(3), "
68 .BR curl_easy_reset "(3), "
69 .BR curl_multi_cleanup "(3), " curl_multi_remove_handle "(3) "