Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_ERRORBUFFER(3)	   curl_easy_setopt options	CURLOPT_ERRORBUFFER(3)

NAME
       CURLOPT_ERRORBUFFER - set error buffer for error	messages

SYNOPSIS
       #include	<curl/curl.h>

       CURLcode	  curl_easy_setopt(CURL	  *handle,  CURLOPT_ERRORBUFFER,  char
       *buf);

DESCRIPTION
       Pass a char * to	a buffer that libcurl may store	human  readable	 error
       messages	 on  failures  or problems. This may be	more helpful than just
       the return code from curl_easy_perform(3) and  related  functions.  The
       buffer must be at least CURL_ERROR_SIZE bytes big.

       You  must  keep the associated buffer available until libcurl no	longer
       needs it. Failing to do	so  will  cause	 very  odd  behavior  or  even
       crashes.	 libcurl  will	need it	until you call curl_easy_cleanup(3) or
       you set the same	option again to	use a different	pointer.

       Do not rely on the contents of the buffer unless	an error code was  re-
       turned.	Since 7.60.0 libcurl will initialize the contents of the error
       buffer to an empty string before	performing the transfer.  For  earlier
       versions	 if  an	 error code was	returned but there was no error	detail
       then the	buffer is untouched.

       Consider	CURLOPT_VERBOSE(3) and CURLOPT_DEBUGFUNCTION(3)	to better  de-
       bug and trace why errors	happen.

DEFAULT
       NULL

PROTOCOLS
       All

EXAMPLE
       curl = curl_easy_init();
       if(curl)	{
	 CURLcode res;
	 char errbuf[CURL_ERROR_SIZE];

	 curl_easy_setopt(curl,	CURLOPT_URL, "http://example.com");

	 /* provide a buffer to	store errors in	*/
	 curl_easy_setopt(curl,	CURLOPT_ERRORBUFFER, errbuf);

	 /* set	the error buffer as empty before performing a request */
	 errbuf[0] = 0;

	 /* perform the	request	*/
	 res = curl_easy_perform(curl);

	 /* if the request did not complete correctly, show the	error
	 information. if no detailed error information was written to errbuf
	 show the more generic information from	curl_easy_strerror instead.
	 */
	 if(res	!= CURLE_OK) {
	   size_t len =	strlen(errbuf);
	   fprintf(stderr, "\nlibcurl: (%d) ", res);
	   if(len)
	     fprintf(stderr, "%s%s", errbuf,
		     ((errbuf[len - 1] != '\n')	? "\n" : ""));
	   else
	     fprintf(stderr, "%s\n", curl_easy_strerror(res));
	 }
       }

AVAILABILITY
       Always

RETURN VALUE
       Returns CURLE_OK

SEE ALSO
       CURLOPT_DEBUGFUNCTION(3),   CURLOPT_VERBOSE(3),	curl_easy_strerror(3),
       curl_multi_strerror(3), curl_share_strerror(3)

libcurl	7.72.0			March 23, 2020		CURLOPT_ERRORBUFFER(3)

NAME | SYNOPSIS | DESCRIPTION | DEFAULT | PROTOCOLS | EXAMPLE | AVAILABILITY | RETURN VALUE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=CURLOPT_ERRORBUFFER&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help