CURLOPT_WRITEDATA(3)

CURLOPT_WRITEDATA3

Pointer passed to the write callback

Usage

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

Overview

A data pointer to pass to the write callback. If you use the 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) when writing data.

The internal 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 use a CURLOPT_WRITEFUNCTION(3) if you set this option or you might experience crashes.

Default

By default, this is a FILE * to stdout.

Protocols

Used for all protocols.

Examples

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) 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

Return value

This returns CURLE_OK.

Releases

79 releases since OS X 10.10; the text changed 14 times.

  1. 10.10–10.10.4
  2. 10.10.5–10.11.6
  3. 10.12–10.12.5
  4. 10.12.6–10.14.6
  5. 10.15–11.5
  6. 12.0.1–12.2
  7. 12.3–12.5
  8. 13.0
  9. 13.1
  10. 13.2
  11. 13.3
  12. 13.4
  13. 13.5–14.1
  14. 14.2–14.4
  15. 14.5–26.5

Availability

Available in all libcurl versions. This option was formerly known as CURLOPT_FILE, the name CURLOPT_WRITEDATA(3) was added in 7.9.7.

From curl 166.0.0.0.1 in macOS 26.5. Parsed by carta from the page's man source.