This section describes how to match a wildcard pattern against a particular string. The result is a yes or no answer: does the string fit the pattern or not. The symbols described here are all declared in fnmatch.h.
Preliminary: | MT-Safe env locale | AS-Unsafe heap | AC-Unsafe mem | See POSIX Safety Concepts.
This function tests whether the string string matches the pattern pattern. It returns
0
if they do match; otherwise, it returns the nonzero valueFNM_NOMATCH
. The arguments pattern and string are both strings.The argument flags is a combination of flag bits that alter the details of matching. See below for a list of the defined flags.
In the GNU C Library,
fnmatch
might sometimes report “errors” by returning nonzero values that are not equal toFNM_NOMATCH
.
These are the available flags for the flags argument:
FNM_FILE_NAME
FNM_PATHNAME
FNM_FILE_NAME
; it comes from POSIX.2. We
don't recommend this name because we don't use the term “pathname” for
file names.
FNM_PERIOD
If you set both FNM_PERIOD
and FNM_FILE_NAME
, then the
special treatment applies to ‘.’ following ‘/’ as well as to
‘.’ at the beginning of string. (The shell uses the
FNM_PERIOD
and FNM_FILE_NAME
flags together for matching
file names.)
FNM_NOESCAPE
If you use FNM_NOESCAPE
, then ‘\’ is an ordinary character.
FNM_LEADING_DIR
If this flag is set, either ‘foo*’ or ‘foobar’ as a pattern
would match the string ‘foobar/frobozz’.
FNM_CASEFOLD
FNM_EXTMATCH
|
separated list of patterns.
?(
pattern-list)
*(
pattern-list)
+(
pattern-list)
@(
pattern-list)
!(
pattern-list)