CURLOPT_XFERINFODATA.3 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. .\" generated by cd2nroff 0.1 from CURLOPT_XFERINFODATA.md
  2. .TH CURLOPT_XFERINFODATA 3 "2025-01-17" libcurl
  3. .SH NAME
  4. CURLOPT_XFERINFODATA \- pointer passed to the progress callback
  5. .SH SYNOPSIS
  6. .nf
  7. #include <curl/curl.h>
  8. CURLcode curl_easy_setopt(CURL *handle, CURLOPT_XFERINFODATA, void *pointer);
  9. .fi
  10. .SH DESCRIPTION
  11. Pass a \fIpointer\fP that is untouched by libcurl and passed as the first
  12. argument in the progress callback set with \fICURLOPT_XFERINFOFUNCTION(3)\fP.
  13. This is an alias for \fICURLOPT_PROGRESSDATA(3)\fP.
  14. .SH DEFAULT
  15. NULL
  16. .SH PROTOCOLS
  17. This functionality affects all supported protocols
  18. .SH EXAMPLE
  19. .nf
  20. struct progress {
  21. char *private;
  22. size_t size;
  23. };
  24. static size_t progress_cb(void *clientp,
  25. curl_off_t dltotal,
  26. curl_off_t dlnow,
  27. curl_off_t ultotal,
  28. curl_off_t ulnow)
  29. {
  30. struct progress *memory = clientp;
  31. printf("private ptr: %p\\n", memory->private);
  32. /* use the values */
  33. return 0; /* all is good */
  34. }
  35. int main(void)
  36. {
  37. CURL *curl = curl_easy_init();
  38. if(curl) {
  39. struct progress data;
  40. /* pass struct to callback */
  41. curl_easy_setopt(curl, CURLOPT_XFERINFODATA, &data);
  42. curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, progress_cb);
  43. }
  44. }
  45. .fi
  46. .SH AVAILABILITY
  47. Added in curl 7.32.0
  48. .SH RETURN VALUE
  49. Returns CURLE_OK
  50. .SH SEE ALSO
  51. .BR CURLOPT_NOPROGRESS (3),
  52. .BR CURLOPT_VERBOSE (3),
  53. .BR CURLOPT_XFERINFOFUNCTION (3)