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

FreeBSD Manual Pages

  
 
  

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

NAME
       CURLOPT_WILDCARDMATCH - directory wildcard transfers

SYNOPSIS
       #include	<curl/curl.h>

       CURLcode	curl_easy_setopt(CURL *handle, CURLOPT_WILDCARDMATCH, long onoff);

DESCRIPTION
       Set  onoff  to  1 if you	want to	transfer multiple files	according to a
       filename	pattern. The pattern can be specified  as  part	 of  the  CUR-
       LOPT_URL(3) option, using an fnmatch-like pattern (Shell	Pattern	Match-
       ing) in the last	part of	URL (filename).

       By default, libcurl uses	its internal wildcard matching implementation.
       You can provide your own	matching function by the CURLOPT_FNMATCH_FUNC-
       TION(3) option.

       A brief introduction of its syntax follows:

       * - ASTERISK
	      ftp://example.com/some/path/*.txt

	      matches all .txt files in	the root directory. Only two asterisks
	      are allowed within the same pattern string.

       ? - QUESTION MARK
	      Question mark matches any	(exactly one) character.

	      ftp://example.com/some/path/photo?.jpg

       [ - BRACKET EXPRESSION
	      The  left	 bracket opens a bracket expression. The question mark
	      and asterisk have	no special meaning in  a  bracket  expression.
	      Each  bracket  expression	 ends by the right bracket and matches
	      exactly one character. Some examples follow:

	      [a-zA-Z0-9] or [f-gF-G] -	character interval

	      [abc] - character	enumeration

	      [^abc] or	[!abc] - negation

	      [[:name:]] class expression. Supported classes are  alnum,lower,
	      space, alpha, digit, print, upper, blank,	graph, xdigit.

	      [][-!^] -	special	case - matches only '-', ']', '[', '!' or '^'.
	      These characters have no special purpose.

	      [[]] - escape syntax. Matches '[', ']' or	'e'.

	      Using the	rules above, a filename	pattern	can be constructed:

	      ftp://example.com/some/path/[a-z[:upper:]\].jpg

PROTOCOLS
       This functionality affects ftp only

EXAMPLE
       extern long begin_cb(struct curl_fileinfo *, void *, int);
       extern long end_cb(void *ptr);

       int main(void)
       {
	 CURL *curl = curl_easy_init();
	 if(curl) {
	   /* turn on wildcard matching	*/
	   curl_easy_setopt(curl, CURLOPT_WILDCARDMATCH, 1L);

	   /* callback is called before	download of concrete file started */
	   curl_easy_setopt(curl, CURLOPT_CHUNK_BGN_FUNCTION, begin_cb);

	   /* callback is called after data from the file have been transferred	*/
	   curl_easy_setopt(curl, CURLOPT_CHUNK_END_FUNCTION, end_cb);

	   /* See more on https://curl.se/libcurl/c/ftp-wildcard.html */
	 }
       }

AVAILABILITY
       Added in	curl 7.21.0

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_CHUNK_BGN_FUNCTION(3),	 CURLOPT_CHUNK_END_FUNCTION(3),	  CUR-
       LOPT_FNMATCH_FUNCTION(3), CURLOPT_URL(3)

libcurl				  2025-06-03	      CURLOPT_WILDCARDMATCH(3)

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

home | help