AP05/curl_arm64/share/man/man3/CURLOPT_DEBUGDATA.3
2025-12-02 13:06:35 +08:00

70 lines
1.7 KiB
Groff

.\" generated by cd2nroff 0.1 from CURLOPT_DEBUGDATA.md
.TH CURLOPT_DEBUGDATA 3 "2025-07-07" libcurl
.SH NAME
CURLOPT_DEBUGDATA \- pointer passed to the debug callback
.SH SYNOPSIS
.nf
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEBUGDATA, void *pointer);
.fi
.SH DESCRIPTION
Pass a \fIpointer\fP to whatever you want passed in to your
\fICURLOPT_DEBUGFUNCTION(3)\fP in the last void * argument. This pointer is
not used by libcurl, it is only passed to the callback.
.SH DEFAULT
NULL
.SH PROTOCOLS
This functionality affects all supported protocols
.SH EXAMPLE
.nf
struct data {
void *custom;
};
static int my_trace(CURL *handle, curl_infotype type,
char *data, size_t size,
void *clientp)
{
struct data *mine = clientp;
printf("our ptr: %p\\n", mine->custom);
/* output debug info */
return 0;
}
int main(void)
{
CURL *curl;
CURLcode res;
struct data my_tracedata;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, my_trace);
curl_easy_setopt(curl, CURLOPT_DEBUGDATA, &my_tracedata);
/* the DEBUGFUNCTION has no effect until we enable VERBOSE */
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
.fi
.SH AVAILABILITY
Added in curl 7.9.6
.SH RETURN VALUE
\fIcurl_easy_setopt(3)\fP returns a CURLcode indicating success or error.
CURLE_OK (0) means everything was OK, non\-zero means an error occurred, see
\fIlibcurl\-errors(3)\fP.
.SH SEE ALSO
.BR CURLOPT_DEBUGFUNCTION (3),
.BR CURLOPT_STDERR (3)