FNMATCH(3)                     Library Routines                     FNMATCH(3)




NAME

       fnmatch - match filename or pathname


SYNOPSIS

       #include <fnmatch.h>

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


DESCRIPTION

       The  fnmatch  function  matches patterns according to the 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 string must be explicitly matched by
                     periods in pattern.  If this flag is not set, then  lead‐
                     ing periods are treated as regular characters.  The defi‐
                     nition 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 imme‐
                     diately follows a slash.

              FNM_CASEFOLD
                     If this flag is set, then the filename matching  will  be
                     case insensitive.  This is an extension for GNO.

              FNM_LEADING_DIR
                     Ignore any trailing sequence /* after successfully match‐
                     ing pattern.  This is a GNU extension.

       In the GNO implementation, if the FNM_PATHNAME flag is set,  any  colon
       (:)  characters  appearing in pattern or string will be mapped to slash
       (/) characters before any match is attempted, unless either pattern  or
       string contain both colons and slashes.


RETURN VALUES

       The  fnmatch function returns zero if string matches the pattern speci‐
       fied by pattern, otherwise, it returns the value FNM_NOMATCH.


BUGS

       The pattern * matches the empty string, even if FNM_PATHNAME is  speci‐
       fied.

       This  implementation  of  fnmatch  uses  recursion.   While this is not
       strictly a bug, it is a serious limitation  on  the  IIgs  where  stack
       space is at a premium.


STANDARDS

       Other  than  the  mapping  of : characters to / characters, the fnmatch
       function conforms to POSIX  1003.2.   The  FNM_CASEFOLD  and  FNM_LEAD
       ING_DIR flags are extensions to the standard.


HISTORY

       The fnmatch function first appeared in 4.4BSD.


SEE ALSO

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



GNO                            22 February 1996                     FNMATCH(3)

Man(1) output converted with man2html