GNURLOPT_COPYPOSTFIELDS(3)
okay so this is the GNURLOPT_COPYPOSTFIELDS(3) page from the curl_easy_setopt options set, and it's giving "let libcurl handle the copy, bestie" π
β¨
π NAME π
CURLOPT_COPYPOSTFIELDS β have libcurl copy data to POST π«Ά
β¨ SYNOPSIS β¨
#include <gnurl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COPYPOSTFIELDS, char
*data);
π DESCRIPTION π
Pass a char * as parameter, bestie β it should be the full data to post in a HTTP POST operation. It behaves as the CURLOPT_POSTFIELDS(3) option, but the original data is instead copied by the library, allowing the application to overwrite the original data after setting this option. Iconic behavior, honestly. π
Because data are copied, care must be taken when using this option in conjunction with CURLOPT_POSTFIELDSIZE(3) or CURLOPT_POSTFIELDSIZE_LARGE(3): if the size has not been set prior to CURLOPT_COPYPOSTFIELDS(3), the data is assumed to be a null-terminated string; else the stored size informs the library about the byte count to copy. Write that down, bestie. π
In any case, the size must not be changed after CURLOPT_COPYPOSTFIELDS(3), unless another CURLOPT_POSTFIELDS(3) or CURLOPT_COPYPOSTFIELDS(3) option is issued. That's a real rule, not a vibe suggestion. β οΈ
πΈ DEFAULT πΈ
NULL β that's the default, and that's the whole story π
π¦ PROTOCOLS π¦
HTTP(S) β¨
π EXAMPLE π
Here's the example, kept exactly as-is because we do not mess with code in this house π
CURL *curl = curl_easy_init();
if(curl) {
char local_buffer[1024]="data to send";
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
/* size of the data to copy from the buffer and send in the request */
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 12L);
/* send data from the local stack */
curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, local_buffer);
curl_easy_perform(curl);
}
π AVAILABILITY π
Added in 7.17.1 β
π RETURN VALUE π
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space. May your heap be spacious and your return codes friendly. ππ«Ά
π SEE ALSO π
The SEE ALSO crew, fr fr: CURLOPT_POSTFIELDS(3), CURLOPT_POSTFIELDSIZE(3), β yes bestie, that trailing comma is in the original, and honestly? it's iconic. π
That's the whole page: libcurl 7.37.0, 19 Jun 2014, GNURLOPT_COPYPOSTFIELDS(3) ππ«Ά
π¦ where this page comes from
- nixos 26.05: libgnurl 7.72.0
- nixpkgs unstable: libgnurl 7.72.0
- Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms