fnmatch

FNMATCH(3)               Руководство программиста Linux               FNMATCH(3)



ИМЯ
       fnmatch - сравнивает имя файла или путь

ОБЗОР
       #include <fnmatch.h>

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

ОПИСАНИЕ
       Функция fnmatch() проверяет, совпадает ли параметр string с параметром
       pattern, который является шаблоном.

       Аргумент flags изменяет поведение; он является битовой маской и может
       содержать следующие флаги:

       FNM_NOESCAPE
              Если этот флаг установлен, то обратная косая черта воспринимается
              как простой символ, а не специальный.

       FNM_PATHNAME
              Если этот флаг установлен, то косая черта в строке string будет
              совпадать только с косой чертой в шаблоне pattern, но не с
              метасимволом звёздочка (*) или вопросительным знаком (?) и не
              последовательностью в квадратных скобках ([]), содержащую косую
              черту.

       FNM_PERIOD
              Если этот флаг установлен, то начальная точка в строке string
              должна сравниваться именно с точкой в шаблоне pattern. Точка
              считается начальной, если она является первым символом в строке
              string, или если установлен флаг FNM_PATHNAME и точка следует
              сразу за косой чертой.

       FNM_FILE_NAME
              Синоним FNM_PATHNAME в GNU.

       FNM_LEADING_DIR
              Если этот флаг (расширение GNU) установлен, то строка считается
              совпавшей с шаблоном, если совпадает начальный сегмент строки
              string, который следует сразу за косой чертой. Этот флаг для
              внутреннего использования glibc и не всегда реализуется.

       FNM_CASEFOLD
              Если этот флаг (расширение GNU) установлен, то выражения
              сравниваются без учёта регистра символов.

       FNM_EXTMATCH
              Если этот флаг (расширение GNU) установлен, то поддерживаются
              расширенные шаблоны из 'ksh' и теперь поддерживаемые другими
              оболочками. В расширенном формате pattern-list предоставляет собой
              список шаблонов, разделённых '|', входит следующее:

       '?(pattern-list)'
              Шаблон совпадает, если ноль или одно вхождение любого шаблона в
              pattern-list совпадает с входной строкой string.

       '*(pattern-list)'
              Шаблон совпадает, если ноль или более вхождений любых шаблонов в
              pattern-list совпадает с входной строкой string.

       '+(pattern-list)'
              Шаблон совпадает, если одно или более вхождений любых шаблонов в
              pattern-list совпадает с входной строкой string.

       '@(pattern-list)'
              Шаблон совпадает, если только одно вхождение любого шаблона в
              pattern-list совпадает с входной строкой string.

       '!(pattern-list)'
              Шаблон совпадает, если входная строка string не совпадает с
              каким-либо шаблоном в pattern-list.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
       Возвращает ноль, если строка string совпадает с шаблоном pattern,
       возвращает FNM_NOMATCH, если строка и шаблон не совпадают, или другое
       ненулевое значение, если произошла ошибка.

АТРИБУТЫ
       Описание терминов данного раздела смотрите в attributes(7).

       ┌──────────┬──────────────────────┬────────────────────┐
       │Интерфейс Атрибут              Значение           │
       ├──────────┼──────────────────────┼────────────────────┤
       │fnmatch() │ Безвредность в нитях │ MT-Safe env locale │
       └──────────┴──────────────────────┴────────────────────┘
СООТВЕТСТВИЕ СТАНДАРТАМ
       POSIX.1-2001, POSIX.1-2008, POSIX.2. Флаги FNM_FILE_NAME, FNM_LEADING_DIR
       и FNM_CASEFOLD являются расширениями GNU.

СМОТРИТЕ ТАКЖЕ
       sh(1), glob(3), scandir(3), wordexp(3), glob(7)



GNU                                2015-12-28                         FNMATCH(3)