CURLOPT_PREQUOTE(3)

✨ CURLOPT_PREQUOTE(3) ✨

okay bestie, welcome to the Library Functions Manual glow-up for CURLOPT_PREQUOTE(3) πŸ’… this one is a short but iconic little FTP pre-transfer command hook. let's get into it πŸ¦‹

🌸 NAME 🌸

CURLOPT_PREQUOTE - commands to run before an FTP transfer ✨

πŸŽ€ SYNOPSIS πŸŽ€

       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PREQUOTE,
                                 struct curl_slist *cmds);

πŸ’– DESCRIPTION πŸ’–

You pass a pointer to a linked list of FTP commands that get passed to the server after the transfer type is set β€” that timing is the whole vibe, okay? ⏰ The linked list should be a fully valid list of struct curl_slist structs, properly filled in as described for CURLOPT_QUOTE(3).

If you use this option multiple times, the last set string overrides the previous ones. Set it to NULL to disable its use again. πŸ›‘

⚠️ huge warning, bestie, no cap: libcurl does not copy the list. It needs to be kept around until after the transfer has completed. Do not free it early, fr fr 😭

Also, while CURLOPT_QUOTE(3) and CURLOPT_POSTQUOTE(3) work for SFTP, this option does not. SFTP girlies, this is not your moment πŸ™ˆ

πŸ“ DEFAULT πŸ“

NULL

🧚 PROTOCOLS 🧚

This functionality affects ftp only 🌐

πŸ”₯ EXAMPLE πŸ”₯

       int main(void)
       {
         struct curl_slist *cmdlist = NULL;
         cmdlist = curl_slist_append(cmdlist, "SYST");

         CURL *curl = curl_easy_init();
         if(curl) {
           CURLcode result;
           curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/foo.bin");

           /* pass in the FTP commands to run */
           curl_easy_setopt(curl, CURLOPT_PREQUOTE, cmdlist);

           result = curl_easy_perform(curl);

           curl_easy_cleanup(curl);
         }
         curl_slist_free_all(cmdlist);
       }

⭐ AVAILABILITY ⭐

Added in curl 7.9.5 πŸ‘‘

πŸ’€ RETURN VALUE πŸ’€

curl_easy_setopt(3) returns a CURLcode indicating success or error. CURLE_OK (0) means everything was OK; non-zero means an error occurred, see libcurl-errors(3). βœ…

🫢 SEE ALSO 🫢


mwah πŸ’‹ this page is brought to you by libcurl, dated 2026-10-12, and the page name is CURLOPT_PREQUOTE(3) πŸŽ€ periodt.

πŸ“¦ where this page comes from