.\" generated by cd2nroff 0.1 from CURLOPT_WRITEDATA.md .TH CURLOPT_WRITEDATA 3 "March 22 2024" libcurl .SH NAME CURLOPT_WRITEDATA \- pointer passed to the write callback .SH SYNOPSIS .nf #include CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WRITEDATA, void *pointer); .fi .SH DESCRIPTION A data \fIpointer\fP to pass to the write callback. If you use the \fICURLOPT_WRITEFUNCTION(3)\fP option, this is the pointer you get in that callback\(aqs fourth and last argument. If you do not use a write callback, you must make \fIpointer\fP a \(aqFILE \fI\(aq (cast to \(aqvoid \fP\(aq) as libcurl passes this to \fIfwrite(3)\fP when writing data. The internal \fICURLOPT_WRITEFUNCTION(3)\fP writes the data to the FILE * given with this option, or to stdout if this option has not been set. If you are using libcurl as a Windows DLL, you \fBMUST\fP use a \fICURLOPT_WRITEFUNCTION(3)\fP if you set this option or you might experience crashes. .SH DEFAULT By default, this is a FILE * to stdout. .SH PROTOCOLS Used for all protocols. .SH EXAMPLE A common technique is to use the write callback to store the incoming data into a dynamically growing allocated buffer, and then this \fICURLOPT_WRITEDATA(3)\fP is used to point to a struct or the buffer to store data in. Like in the getinmemory example: https://curl.se/libcurl/c/getinmemory.html .SH AVAILABILITY Available in all libcurl versions. This option was formerly known as CURLOPT_FILE, the name \fICURLOPT_WRITEDATA(3)\fP was added in 7.9.7. .SH RETURN VALUE This returns CURLE_OK. .SH SEE ALSO .BR CURLOPT_HEADERDATA (3), .BR CURLOPT_READDATA (3), .BR CURLOPT_WRITEFUNCTION (3)