CURLOPT\_WRITEDATA(3) Library Functions Manual CURLOPT\_WRITEDATA(3)

# [NAME](#NAME)

CURLOPT\_WRITEDATA - pointer passed to the write callback

# [SYNOPSIS](#SYNOPSIS)

```
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WRITEDATA, void *pointer);
```

# [DESCRIPTION](#DESCRIPTION)

A data *pointer* to pass to the write callback. If you use the [*CURLOPT\_WRITEFUNCTION(3)*](/man/os/curl/CURLOPT_WRITEFUNCTION.3) option, this is the pointer you get in that callback's fourth and last argument. If you do not use a write callback, you must make *pointer* a 'FILE \*' (cast to 'void \*') as libcurl passes this to [*fwrite(3)*](/man/os/curl/fwrite.3) when writing data.

The internal [*CURLOPT\_WRITEFUNCTION(3)*](/man/os/curl/CURLOPT_WRITEFUNCTION.3) 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 must also use [*CURLOPT\_WRITEFUNCTION(3)*](/man/os/curl/CURLOPT_WRITEFUNCTION.3) if you set this option or you might experience crashes.

# [DEFAULT](#DEFAULT)

stdout

# [PROTOCOLS](#PROTOCOLS)

This functionality affects all supported protocols

# [EXAMPLE](#EXAMPLE)

A common technique is to use the write callback to store the incoming data into a dynamically growing allocated buffer, and then this [*CURLOPT\_WRITEDATA(3)*](/man/os/curl/CURLOPT_WRITEDATA.3) 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

# [HISTORY](#HISTORY)

This option was formerly known as CURLOPT\_FILE, the name [*CURLOPT\_WRITEDATA(3)*](/man/os/curl/CURLOPT_WRITEDATA.3) was added in 7.9.7.

# [AVAILABILITY](#AVAILABILITY)

Added in curl 7.9.7

# [RETURN VALUE](#RETURN_VALUE)

This returns CURLE\_OK.

# [SEE ALSO](#SEE_ALSO)

[**CURLOPT\_HEADERDATA**(3)](/man/os/curl/CURLOPT_HEADERDATA.3), [**CURLOPT\_READDATA**(3)](/man/os/curl/CURLOPT_READDATA.3), [**CURLOPT\_WRITEFUNCTION**(3)](/man/os/curl/CURLOPT_WRITEFUNCTION.3)

2026-10-14 libcurl

---

Document: CURLOPT_WRITEDATA(3) from curl 8.23.0-r0 (Chainguard OS)
Source: https://github.com/curl/curl.git
