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

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_RANGE(3)	   Library Functions Manual	      CURLOPT_RANGE(3)

NAME
       CURLOPT_RANGE - byte range to request

SYNOPSIS
       #include	<curl/curl.h>

       CURLcode	curl_easy_setopt(CURL *handle, CURLOPT_RANGE, char *range);

DESCRIPTION
       Pass  a	char  pointer as parameter, which should contain the specified
       range you want to retrieve. It should be	in the format "X-Y", where ei-
       ther X or Y may be left out and X and Y are byte	indexes.

       HTTP transfers also support several intervals, separated	with commas as
       in "X-Y,N-M". Using this	kind of	multiple  intervals  causes  the  HTTP
       server  to  send	 the  response document	in pieces (using standard MIME
       separation techniques) as a multiple part response  which  libcurl  re-
       turns  as-is. It	contains meta information in addition to the requested
       bytes. Parsing or otherwise transforming	this response is the responsi-
       bility of the caller.

       Unfortunately, the HTTP standard	(RFC 7233 section 3.1) allows  servers
       to  ignore  range  requests so even when	you set	CURLOPT_RANGE(3) for a
       request,	you may	end up getting the full	response sent back.

       For RTSP, the formatting	of a range  should  follow  RFC	 2326  Section
       12.29.  For RTSP, byte ranges are not permitted.	Instead, ranges	should
       be given	in npt,	utc, or	smpte formats.

       For HTTP	PUT uploads this option	should not be used, since it may  con-
       flict with other	options.

       Using this option multiple times	makes the last set string override the
       previous	ones. Set it to	NULL to	disable	its use	again.

       The  application	 does not have to keep the string around after setting
       this option.

DEFAULT
       NULL

PROTOCOLS
       This functionality affects file,	ftp, http, rtsp	and sftp

EXAMPLE
       int main(void)
       {
	 CURL *curl = curl_easy_init();
	 if(curl) {
	   curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

	   /* get the first 200	bytes */
	   curl_easy_setopt(curl, CURLOPT_RANGE, "0-199");

	   /* Perform the request */
	   curl_easy_perform(curl);
	 }
       }

HISTORY
       FILE since 7.18.0, RTSP since 7.20.0

AVAILABILITY
       Added in	curl 7.1

RETURN VALUE
       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK	(0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       CURLOPT_LOW_SPEED_LIMIT(3),     CURLOPT_MAXFILESIZE_LARGE(3),	  CUR-
       LOPT_MAX_RECV_SPEED_LARGE(3), CURLOPT_RESUME_FROM(3)

libcurl				  2025-06-03		      CURLOPT_RANGE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_RANGE&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help