From: Daniel Stenberg Date: Thu, 5 Jun 2025 09:05:38 +0000 (+0200) Subject: docs/examples: add ftp-delete.c X-Git-Tag: rc-8_15_0-1~130 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fae57843466aba9e060d4a7c9653a9adf8463fde;p=thirdparty%2Fcurl.git docs/examples: add ftp-delete.c To show how to delete a single file after a transfer Closes #17540 --- diff --git a/docs/examples/Makefile.inc b/docs/examples/Makefile.inc index 99980e39f4..8c0ceee6de 100644 --- a/docs/examples/Makefile.inc +++ b/docs/examples/Makefile.inc @@ -37,6 +37,7 @@ check_PROGRAMS = \ default-scheme \ externalsocket \ fileupload \ + ftp-delete \ ftp-wildcard \ ftpget \ ftpgetinfo \ diff --git a/docs/examples/ftp-delete.c b/docs/examples/ftp-delete.c new file mode 100644 index 0000000000..b879da48d3 --- /dev/null +++ b/docs/examples/ftp-delete.c @@ -0,0 +1,84 @@ +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ +#include + +#include + +/* + * Delete a single file from an FTP server. + * + */ + +static size_t my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream) +{ + (void)buffer; + (void)stream; + return size * nmemb; +} + + +int main(void) +{ + CURL *curl; + CURLcode res; + struct curl_slist *headerlist = NULL; + + curl_global_init(CURL_GLOBAL_DEFAULT); + + curl = curl_easy_init(); + if(curl) { + /* + * You better replace the URL with one that works! + */ + curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.example.com/"); + /* Define our callback to get called when there is data to be written */ + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite); + + /* Switch on full protocol/debug output */ + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); + + /* build a list of commands to pass to libcurl */ + headerlist = curl_slist_append(headerlist, "DELE file-to-remove"); + + /* pass in list of FTP commands to run after the transfer */ + curl_easy_setopt(curl, CURLOPT_POSTQUOTE, headerlist); + + res = curl_easy_perform(curl); + + /* always cleanup */ + curl_easy_cleanup(curl); + + /* clean up the FTP commands list */ + curl_slist_free_all(headerlist); + + if(CURLE_OK != res) { + /* we failed */ + fprintf(stderr, "curl told us %d\n", res); + } + } + + curl_global_cleanup(); + + return 0; +}