fnmatch(3)

НАИМЕНОВАНИЕ
fnmatch - сравнивает имя файла или путь

БИБЛИОТЕКА
Стандартная библиотека языка C (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
FNM_IGNORECASE (same as FNM_CASEFOLD)
    If this flag is set, the pattern is matched case-insensitively.

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

СТАНДАРТЫ

fnmatch()
    POSIX.1-2008.

FNM_CASEFOLD
FNM_IGNORECASE
    POSIX.1-2024.

FNM_FILE_NAME
FNM_LEADING_DIR
    GNU.

ИСТОРИЯ

fnmatch()
    POSIX.1-2001, POSIX.2.

FNM_CASEFOLD
    has been available on many systems even before POSIX.1-2024.

СМОТРИТЕ ТАКЖЕ
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 (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (debian-l10n-russian@lists.debian.org).