.\" generated by cd2nroff 0.1 from CURLOPT_POSTFIELDSIZE_LARGE.md .TH CURLOPT_POSTFIELDSIZE_LARGE 3 "2026-10-31" libcurl .SH NAME CURLOPT_POSTFIELDSIZE_LARGE \- size of POST data pointed to .SH SYNOPSIS .nf #include CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTFIELDSIZE_LARGE, curl_off_t size); .fi .SH DESCRIPTION Set the \fIsize\fP of the data buffer to POST to prevent libcurl from doing a strlen() to figure out the data size. When this option is used you can post fully binary data, which otherwise is likely to fail. If this size is set to -1, libcurl uses strlen() to get the size or relies on the \fICURLOPT_READFUNCTION(3)\fP (if used) to signal the end of data. You \fImust\fP make sure that the set size is not larger than the provided buffer. .SH DEFAULT -1 .SH PROTOCOLS This functionality affects http, mqtt and rtsp .SH EXAMPLE .nf extern char *large_chunk; /* pointer to somewhere */ int main(void) { CURL *curl = curl_easy_init(); if(curl) { CURLcode result; const char *data = large_chunk; curl_off_t length_of_data = 12345; /* set somehow */ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com"); /* size of the POST data */ curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, length_of_data); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); result = curl_easy_perform(curl); curl_easy_cleanup(curl); } } .fi .SH AVAILABILITY Added in curl 7.11.1 .SH RETURN VALUE \fIcurl_easy_setopt(3)\fP returns a CURLcode indicating success or error. CURLE_OK (0) means everything was OK, non\-zero means an error occurred, see \fIlibcurl\-errors(3)\fP. .SH SEE ALSO .BR CURLOPT_COPYPOSTFIELDS (3), .BR CURLOPT_POSTFIELDS (3), .BR CURLOPT_POSTFIELDSIZE (3)