fnmatch - match filename or pathname using shell globbing
fnmatch(const char *pattern, const char *string, int flags);
The fnmatch() function matches patterns according to the
used by the shell. It checks the string specified by the
to see if it matches the pattern specified by the pattern
The flags argument modifies the interpretation of pattern
The value of flags is the bitwise inclusive OR of any of the
constants, which are defined in the include file
FNM_NOESCAPE Normally, every occurrence of a backslash (`')
a character in pattern is replaced by that
is done to negate any special meaning for the
If the FNM_NOESCAPE flag is set, a backslash
treated as an ordinary character.
FNM_PATHNAME Slash characters in string must be explicitly
slashes in pattern. If this flag is not set,
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,
periods are treated as regular characters.
of ``leading'' is related to the specification
FNM_PATHNAME. A period is always leading if
it is the
first character in string. Additionally, if
is set, a period is leading if it immediately
Ignore /* rest after successful pattern matching.
FNM_CASEFOLD Ignore case distinctions in both the pattern
The fnmatch() function returns zero if string matches the
by pattern, otherwise, it returns the value FNM_NOMATCH.
sh(1), glob(3), regex(3)
The fnmatch() function conforms to IEEE Std 1003.2-1992
X/Open Portability Guide Issue 4.2 (``XPG4.2'').
Note, however, that the flags FNM_LEADING_DIR and FNM_CASEFOLD are extensions
and should not be used by applications striving for
The fnmatch() function first appeared in 4.4BSD.
The pattern `*' matches the empty string, even if FNM_PATHNAME is specified.
OpenBSD 3.6 April 28, 1995
[ Back ]