fnmatch - Match filename patterns
const char *pattern,
const char *string,
int flags );
Standard C Library (libc)
Interfaces documented on this reference page conform to
industry standards as follows:
fnmatch(): XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Contains the pattern to which the string parameter is to
be compared. Contains the string to be compared against
the pattern parameter. Contains a bit option specifying
the configurable attributes of the comparison to be performed
by the fnmatch function.
The flags parameter modifies the interpretation of the
pattern and string parameters. It is the bitwise inclusive
OR (|) of 0 (zero) or more of the following options,
which are defined in the fnmatch.h file. Slash in the
string parameter only matches slash in the pattern parameter.
Leading period in the string parameter must be
exactly matched by period in the pattern parameter.
Unless FNM_NOESCAPE is set, preceding a character in pattern
with a \ (backslash character) causes fnmatch() to
match that character in string. For example, \\ matches a
backslash in string. If FNM_NOESCAPE is set, \ (backslash)
is interpreted as an ordinary character.
If the FNM_PATHNAME option is set in the flags parameter,
a / (slash) in the string parameter is explicitly matched
by a / in the pattern parameter. It is not matched by
either the * (asterisk) or ? (question-mark) special
characters, nor by a bracket expression. If the FNM_PATHNAME
option is not set, the / is treated as an ordinary
If FNM_PERIOD is set in the flags parameter, then a leading
period in the string parameter only matches a period
in the pattern parameter; it is not matched by either the
asterisk or question-mark special characters, nor by a
bracket expression. A period is determined to be leading
according to the setting of the FNM_PATHNAME option,
according to the following rules: If the FNM_PATHNAME
option is set, a period is leading only if it is the first
character in the string parameter or if it immediately
follows a slash. If the FNM_PATHNAME option is not set, a
period is leading only if it is the first character of the
If FNM_PERIOD is not set, no special restrictions are
placed on matching a period.
A \ (backslash character) quotes the next character,
unless FNM_NOESCAPE is set. If FNM_NOESCAPE is set, \
(backslash) is treated as itself.
The fnmatch() function checks the string specified by the
string parameter to see if it matches the pattern specified
by the pattern parameter. This routine follows the
match criteria of the glob() function.
The fnmatch function is useful when a program needs to
perform pattern matching, such as when a directory is to
be searched for a particular string (as is the case with
the find command). A program like the pax command can
also use the fnmatch() function to perform its pattern
If the value in the string parameter matches the pattern
specified by the pattern parameter, then the fnmatch()
function returns 0 (zero). If there is no match, the
fnmatch() function returns FNM_NOMATCH, which is defined
in the fnmatch.h file. If an error occurs, the fnmatch()
function returns a nonzero value.
Functions: glob(3), globfree(3), regcomp(3)
[ Back ]