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

FreeBSD Manual Pages

  
 
  

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

NAME
       fnmatch	--  test  whether a filename or	pathname matches a shell-style
       pattern

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<fnmatch.h>

       int
       fnmatch(const char *pattern, const char *string,	int flags);

DESCRIPTION
       The fnmatch() function matches patterns according to the	rules used  by
       the  shell.   It	 checks	the string specified by	the string argument to
       see if it matches the pattern specified by the pattern argument.

       The flags argument modifies the interpretation of pattern  and  string.
       The  value of flags is the bitwise inclusive OR of any of the following
       constants, which	are defined in the include file	<fnmatch.h>.

       FNM_NOESCAPE  Normally, every occurrence	of a backslash (`\')  followed
		     by	 a character in	pattern	is replaced by that character.
		     This is done to negate any	special	meaning	for the	 char-
		     acter.   If  the  FNM_NOESCAPE  flag  is set, a backslash
		     character is treated as an	ordinary character.

       FNM_PATHNAME  Slash characters in string	must be	explicitly matched  by
		     slashes  in  pattern.   If	 this  flag  is	 not set, then
		     slashes are treated as regular characters.

       FNM_PERIOD    Leading periods in	string must be explicitly  matched  by
		     periods  in pattern.  If this flag	is not set, then lead-
		     ing periods are treated as	regular	characters.  The defi-
		     nition of "leading" is related to	the  specification  of
		     FNM_PATHNAME.   A period is always	"leading" if it	is the
		     first character in	string.	 Additionally, if FNM_PATHNAME
		     is	set, a period is leading if it immediately  follows  a
		     slash.

       FNM_LEADING_DIR
		     Ignore "/*" rest after successful pattern matching.

       FNM_CASEFOLD  Ignore  case  distinctions	 in  both  the pattern and the
		     string.

RETURN VALUES
       The fnmatch() function returns zero if string matches the pattern spec-
       ified by	pattern, otherwise, it returns the value FNM_NOMATCH.

SEE ALSO
       sh(1), glob(3), regex(3)

STANDARDS
       The current implementation of the fnmatch() function does  not  conform
       to  IEEE	Std 1003.2 ("POSIX.2").	 Collating symbol expressions, equiva-
       lence class expressions and character class expressions	are  not  sup-
       ported.

HISTORY
       A  predecessor  to  fnmatch(), gmatch(),	first appeared in the Program-
       mer's Workbench (PWB/UNIX).  The	fnmatch() function first  appeared  in
       4.4BSD.

BUGS
       The pattern `*' matches the empty string, even if FNM_PATHNAME is spec-
       ified.

FreeBSD	14.3			 April 2, 2022			    FNMATCH(3)

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

home | help