ИМЯ
fnmatch -
сравнивает
имя файла
или путь
ОБЗОР
#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.