CURLOPT_PROGRESSDATA(3)

CURLOPT_PROGRESSDATA3

Pointer passed to the progress callback

Usage

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

Overview

Pass a pointer that is untouched by libcurl and passed as the first argument in the progress callback set with CURLOPT_PROGRESSFUNCTION(3).

Default

The default value of this parameter is NULL.

Protocols

All

Examples

struct progress {
  char *private;
  size_t size;
};
static size_t progress_callback(void *clientp,
                                double dltotal,
                                double dlnow,
                                double ultotal,
                                double ulnow)
{
  struct progress *memory = clientp;
  printf("private: %p\n", memory->private);
  /* use the values */
  return 0; /* all is good */
}
int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    struct progress data;
    /* pass struct to callback  */
    curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, &data);
    curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback);
    curl_easy_perform(curl);
  }
}

Return value

Returns CURLE_OK

Releases

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

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

Availability

Always

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