ОБЗОР
#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) |