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-расширение) установлен, то выражения сравниваются независимо от регистра символов.

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

СООТВЕТСТВИЕ СТАНДАРТАМ
ISO/IEC 9945-2: 1993 (POSIX.2). Флаги FNM_FILE_NAME, FNM_LEADING_DIR и FNM_CASEFOLD являются расширениями GNU.

СМ. ТАКЖЕ
sh(1), glob(3), scandir(3), glob(7)