CURLOPT_READDATA(3)

CURLOPT_READDATA3

Pointer passed to the read callback

Usage

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

Overview

Data pointer to pass to the file read function. If you use the CURLOPT_READFUNCTION(3) option, this is the pointer you get as input in the fourth argument to the callback.

If you do not specify a read callback but instead rely on the default internal read function, this data must be a valid readable FILE * (cast to 'void *').

If you are using libcurl as a DLL on Windows, you must use the CURLOPT_READFUNCTION(3) callback if you set this option, otherwise you might experience crashes.

Default

By default, this is a FILE * to stdin.

Protocols

This is used for all protocols when sending data.

Examples

struct MyData {
  void *custom;
};
int main(void)
{
  CURL *curl = curl_easy_init();
  struct MyData this;
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
    /* pass pointer that gets passed in to the
       CURLOPT_READFUNCTION callback */
    curl_easy_setopt(curl, CURLOPT_READDATA, &this);
    curl_easy_perform(curl);
  }
}

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

This option was once known by the older name CURLOPT_INFILE, the name CURLOPT_READDATA(3) was introduced in 7.9.7.

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