October 7, 2002 FNMATCH 3

### NAME

fnmatch - match filename or pathname using shell glob rules

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```int` fnmatch(```const char *pattern``, const char *string``, int flags`)

### DESCRIPTION

The fnmatch(``) function matches patterns according to the globbing rules used by the shell. It checks the string specified by the ```string` argument to see if it matches the pattern specified by the ```pattern` argument.

The ```flags` argument modifies the interpretation of ```pattern` and ```string`. The value of ```flags` is the bitwise inclusive OR of any of the following constants, which are defined in the include file ```fnmatch.h`.

```FNM_NOESCAPE`
  Normally, every occurrence of a backslash (`\') followed by a character in ```pattern` is replaced by that character. This is done to negate any special meaning for the character. If the ```FNM_NOESCAPE` flag is set, a backslash character is treated as an ordinary character.

```FNM_PATHNAME`
  Slash characters in ```string` must be explicitly matched by slashes in ```pattern`. If this flag is not set, then slashes are treated as regular characters.

```FNM_PERIOD`
  Leading periods in strings match periods in patterns. The definition of ``leading'' is related to the specification of ```FNM_PATHNAME`. A period is always ``leading'' if it is the first character in string. Additionally, if ```FNM_PATHNAME` is set, a period is ``leading'' if it immediately follows a slash.

```FNM_LEADING_DIR`
  Ignore ``/*'' rest after successful ```pattern` matching.

```FNM_CASEFOLD`
  The pattern is matched in a case-insensitive fashion.

### RETURN VALUES

The fnmatch(``) function returns zero if ```string` matches the pattern specified by ```pattern`, otherwise, it returns the value ```FNM_NOMATCH`.

### SEE ALSO

sh(1), glob(3), regex(3)

### STANDARDS

The fnmatch(``) function conforms to IEEE Std 1003.2-1992 (``POSIX.2'') . The ```FNM_CASEFOLD` flag is a NetBSD extension.

### HISTORY

The fnmatch(``) function first appeared in 4.4BSD.

### BUGS

The pattern `*' matches the empty string, even if ```FNM_PATHNAME` is specified.