#include <fnmatch.h> int fnmatch(const char *pattern, const char *string, int flags);
The fnmatch() function checks whether the string argument matches the pattern argument, which is a shell wildcard pattern (see glob(7)).
The flags argument modifies the behavior; it is the bitwise OR of zero or more of the following flags:
If this flag is set, treat backslash as an ordinary character, instead of an escape character.
If this flag is set, match a slash in string only with a slash in pattern and not by an asterisk (*) or a question mark (?) metacharacter, nor by a bracket expression () containing a slash.
If this flag is set, a leading period in string has to be matched exactly by a period in pattern. A period is considered to be leading if it is the first character in string, or if both FNM_PATHNAME is set and the period immediately follows a slash.
This is a GNU synonym for FNM_PATHNAME.
If this flag (a GNU extension) is set, the pattern is considered to be matched if it matches an initial segment of string which is followed by a slash. This flag is mainly for the internal use of glibc and is implemented only in certain cases.
If this flag (a GNU extension) is set, the pattern is matched case-insensitively.
If this flag (a GNU extension) is set, extended patterns are supported, as introduced by 'ksh' and now supported by other shells. The extended format is as follows, with pattern-list being a '|' separated list of patterns.
The pattern matches if zero or one occurrences of any of the patterns in the pattern-list match the input string.
The pattern matches if zero or more occurrences of any of the patterns in the pattern-list match the input string.
The pattern matches if one or more occurrences of any of the patterns in the pattern-list match the input string.
The pattern matches if exactly one occurrence of any of the patterns in the pattern-list match the input string.
The pattern matches if the input string cannot be matched with any of the patterns in the pattern-list.
Zero if string matches pattern, FNM_NOMATCH if there is no match or another nonzero value if there is an error.
For an explanation of the terms used in this section, see attributes(7).
|fnmatch()||Thread safety||MT-Safe env locale|
POSIX.1-2001, POSIX.1-2008, POSIX.2. The FNM_FILE_NAME, FNM_LEADING_DIR, and FNM_CASEFOLD flags are GNU extensions.
sh(1), glob(3), scandir(3), wordexp(3), glob(7)
This page is part of release 5.11 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
bwild(8), ch-run(1), collectd.conf(5), cswrap(1), dhcpcd(8), dhcpcd.conf(5), direvent.conf(5), find(1), fnmatch.3am(3), git-diff(1), git-diff-files(1), git-diff-index(1), git-diff-tree(1), git-for-each-ref(1), git-format-patch(1), gitglossary(7), git-ignore(1), gitignore(5), git-log(1), git-show(1), git-tag(1), glob(3), glob(7), gocryptfs(1), guestfs-hacking(1), krb5_support(3), lirc-lsplugins(1), make.conf(5), netplugd(8), opax(1), recoll.conf(5), scandir(3), scpio(1), snapper(8), ss(8), sudoers(5), systemctl(1), tmux(1), uwildmat(3), vmod_std(3), vtc(7), wordexp(3), zzip_disk_findfile(3), zzip_entry_findfile(3).