fnmatch(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

fnmatch(3c)

Standard C Library Functions                                       fnmatch(3C)



NAME
       fnmatch - match filename or path name

SYNOPSIS
       #include <fnmatch.h>

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

DESCRIPTION
       The  fnmatch() function matches patterns as described on the fnmatch(7)
       manual page. It checks the string argument to see  if  it  matches  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  following  flags
       defined in the header <fnmatch.h>.

       FNM_PATHNAME       If  set,  a  slash  (/)  character in string will be
                          explicitly matched by a slash in  pattern;  it  will
                          not  be  matched by either the asterisk (*) or ques‐
                          tion-mark (?) special characters, nor by  a  bracket
                          ([]) expression.

                          If  not  set,  the  slash character is treated as an
                          ordinary character.


       FNM_FILE_NAME      An alias of FNM_PATHNAME provided for a better  com‐
                          patibility with other operating systems.


       FNM_NOESCAPE       If  not  set,  a  backslash character (\) in pattern
                          followed by any other character will match that sec‐
                          ond  character  in  string. In particular, "\\" will
                          match a backslash in string.

                          If set, a backslash character will be treated as  an
                          ordinary character.


       FNM_PERIOD         If  set,  a  leading  period  in string will match a
                          period in pattern; where the location  of  "leading"
                          is indicated by the value of FNM_PATHNAME:


                              o      If  FNM_PATHNAME  is  set,  a  period  is
                                     "leading" if it is the first character in
                                     string  or  if  it  immediately follows a
                                     slash.


                              o      If FNM_PATHNAME is not set, a  period  is
                                     "leading" only if it is the first charac‐
                                     ter of string.

                          If not set, no special restrictions  are  placed  on
                          matching a period.


       FNM_IGNORECASE     If  set,  during  matching, case is ignored yielding
                          case-insensitive matching on characters based on the
                          case  folding  defined for the current locale or, if
                          that does not exist, tolower() case  conversions  of
                          the current locale.


       FNM_CASEFOLD       An  alias  of  FNM_IGNORECASE  provided for a better
                          compatibility with other operating systems.


       FNM_LEADING_DIR    If set, matching is done with string only until  all
                          pattern  expressions  in  pattern  argument are con‐
                          sumed. Any remaining characters at  string  starting
                          with  slash  character (/) are simply ignored and do
                          not affect the matching result.


RETURN VALUES
       If string matches the pattern  specified  by  pattern,  then  fnmatch()
       returns  0.  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.

USAGE
       The  fnmatch()  function  has  two  major  uses. It could be used by an
       application or utility that needs to read a directory and apply a  pat‐
       tern  against each entry. The find(1) utility is an example of this. It
       can also be used by the pax(1) utility to process its pattern operands,
       or by applications that need to match strings in a similar manner.


       The  name  fnmatch()  is  intended to imply filename match, rather than
       pathname match. The default action of this function is to  match  file‐
       names,  rather  than path names, since it gives no special significance
       to the slash character. With  the  FNM_PATHNAME  flag,  fnmatch()  does
       match  path names, but without tilde expansion, parameter expansion, or
       special treatment for period at the beginning of a filename.


       While the FNM_CASEFOLD, FNM_FILE_NAME,  FNM_IGNORECASE,  and  FNM_LEAD‐
       ING_DIR  flags  are  provided  and supported for a better compatibility
       with some other operating systems, use of them may  make  your  program
       source  code  slightly less portable and portable only to the operating
       systems that support the mentioned flags.

EXAMPLES
       Example 1 A path name matching



       The following example matches all file names under /opt/MyApp1.0/  that
       end with data:


         result = fnmatch("/opt/MyApp1.0/*.data", pname, FNM_PATHNAME);


       Example 2 A case-insensitive file name matching



       The  following  example matches file names pointed to by fname that has
       myfile as prefix in any case combination:


         result = fnmatch("myfile*", fname, FNM_IGNORECASE);


       Example 3 Match all path names with a common set of parent names



       The following example matches path names pointed to by pname that has a
       common  set  of  parent  path names of /opt/l*/MyApps and, in doing so,
       also ensures slash characters are explicitly matched:


         result = fnmatch("/opt/l*/MyApps", pname, (FNM_PATHNAME | FNM_LEADING_DIR));




       For instance, the above will  match  /opt/lib/MyApps/test/test.txt  and
       /opt/local/MyApps/config but not /opt/lib/locale/MyApps.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ CSIEnabled _ Interface StabilityCommitted _ MT-LevelMT-
       Safe _ StandardSee standards(7).


SEE ALSO
       find(1),  pax(1),  glob(3C), setlocale(3C), wordexp(3C), attributes(7),
       fnmatch(7), standards(7)



Oracle Solaris 11.4               11 May 2021                      fnmatch(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3