Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

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

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <fnmatch.h>

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

ОПИСАНИЕ

       Функция  fnmatch()  проверяет,  совпадает ли параметр string с параметром pattern, который
       является подстановочным шаблоном оболочки (смотрите glob(7)).

       Аргумент 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)

ПЕРЕВОД

       Русский   перевод   этой    страницы    руководства    был    сделан    Azamat    Hackimov
       <azamat.hackimov@gmail.com>,   Dmitry   Bolkhovskikh  <d20052005@yandex.ru>,  Yuri  Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.