fnmatch(3G) fnmatch(3G)
fnmatch - match filename or pathname
#include <fnmatch.h>
int fnmatch (const char *pattern, const char *string, int flags);
fnmatch compares the string specified by the string argument against the
pattern specified by the pattern argument.
The flags argument modifies the interpretation of pattern and string. It
is the bitwise inclusive OR of zero or more of the flags defined in the
header <fnmatch.h>. If the FNM_PATHNAME flag is set in flags, then a
slash character in string will be explicitly matched by a slash in
pattern; it will not be matched by either the asterisk or question-mark
special characters, nor by a bracket expression. If the FNM_PATHNAME
flag is not set, the slash character is treated as an ordinary character.
A backslash (`\') is used as an escape character in pattern strings. If
FNM_NOESCAPE is not set in flags, a backslash character (\) in pattern
followed by any other character will match that second character in
string. In particular, (\\) will match a backslash in string. If
FNM_NOESCAPE is set, a backslash character will be treated as an ordinary
character.
If FNM_PERIOD is set in flags, then a leading period in string will match
a period in pattern. The location of ''leading'' is indicated by the
value of FNM_PATHNAME.
If FNM_PATHNAME is set, a period is ''leading'' if it is the first
character if string.
If FNM_PATHNAME is not set, a period is ''leading'' only if it is the
first character of string.
If FNM_PERIOD is not set, then no special restrictions are placed on
matching a period.
If string matches the pattern specified by pattern, then fnmatch returns
zero. If there is no match, fnmatch returns FNM_NOMATCH, which is
defined in the header <fnmatch.h>. If an error occurs, fnmatch returns
another non-zero value.
fnmatch has two major uses. It could be used by an application or
utility that needs to read a directory and apply a pattern against each
entry. The find utility is an example of this. It can also be used by
the pax utility to process its pattern operands, or by applications that
need to match strings in a similar manner.
Page 1
fnmatch(3G) fnmatch(3G)
The name fnmatch is intended to imply filename match, rather than
pathname match. The default action of this function is to match
filenames, rather than pathnames, since it gives no special significance
to the slash character. With the FNM_PATHNAME flag, fnmatch does match
pathnames, but without tilde expansion, parameter expansion, or special
treatment for period at the end of a filename.
glob(3g), wordexp(3g), <fnmatch.h>.
PPPPaaaaggggeeee 2222 [ Back ]
|