fnmatch(3)

NAZWA
fnmatch - porównuje nazwę pliku lub ścieżki

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#include <fnmatch.h>

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

OPIS
Funkcja fnmatch() sprawdza, czy argument string pasuje do wzorca pattern, który jest wzorcem powłoki mogącym zawierać znaki wieloznaczne (zob. glob(7)).

Argument flags modyfikuje zachowanie funkcji, jest to bitowe OR zera lub więcej spośród następujących znaczników:

FNM_NOESCAPE
    Jeśli ten znacznik jest ustawiony, odwrotny ukośnik („\”) jest traktowany jako zwykły znak, a nie jako znak maskujący.

FNM_PATHNAME
    Jeśli ten znacznik jest ustawiony, ukośnik w string pasuje tylko do ukośnika w pattern, a nie do metaznaku asterysku (*) lub znaku zapytania (?), ani nie do ciągu zawartego w wyrażeniu klamrowym [] zawierającym ukośnik.

FNM_PERIOD
    Jeśli ten znacznik jest ustawiony, początkowa kropka w string musi dokładnie pasować do kropki w pattern. Kropka jest uznawana za początkową, jeśli jest pierwszym znakiem string lub jeśli ustawiony jest znacznik FNM_PATHNAME, a kropka następuje bezpośrednio po ukośniku.

FNM_FILE_NAME
    Jest to synonim GNU dla FNM_PATHNAME.

FNM_LEADING_DIR
    Jeśli ten znacznik (rozszerzenie GNU) jest ustawiony, wzorzec jest uznawany za pasujący jeśli pasuje do początkowego fragmentu string, po którym następuje ukośnik. Ten znacznik jest przeznaczony do wewnętrznego użytku w glibc i jest zaimplementowany tylko w niektórych przypadkach.

FNM_CASEFOLD
FNM_IGNORECASE (to samo, co FNM_CASEFOLD)
    Jeśli ten znacznik jest ustawiony, wielkość liter jest nieistotna.

FNM_EXTMATCH
    Jeśli ten znacznik (będący rozszerzeniem GNU) jest ustawiony, to obsługiwane są wzorce rozszerzone, wprowadzone przez „ksh”, a obecnie obsługiwane też przez inne powłoki. Format rozszerzony jest następujący, przy czym lista-wzorców jest listą wzorców, używającą „|” jako separatora.

'?(lista-wzorców)'
    Wzorzec zostanie dopasowany, jeśli dowolny ze wzorców w liście-wzorców wystąpi w wejściowym string zero lub jeden raz.

'*(lista-wzorców)'
    Wzorzec zostanie dopasowany, jeśli dowolny ze wzorców w liście-wzorców wystąpi w wejściowym string zero lub więcej razy.

'+(lista-wzorców)'
    Wzorzec zostanie dopasowany, jeśli dowolny ze wzorców w liście-wzorców wystąpi w wejściowym string jeden lub więcej razy.

'@(lista-wzorców)'
    Wzorzec zostanie dopasowany, jeśli dowolny ze wzorców w liście-wzorców wystąpi w wejściowym string dokładnie jeden raz.

'!(lista-wzorców)'
    Wzorzec zostanie dopasowany, jeśli wejściowy string nie zostanie dopasowany z żadnym ze wzorców w liście-wzorców.

WARTOŚĆ ZWRACANA
Zero jeśli string pasuje do pattern, FNM_NOMATCH jeśli nie pasuje lub inna niezerowa wartość jeśli wystąpił błąd.

ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs | Atrybut | Wartość
fnmatch() | Bezpieczeństwo wątkowe | MT-bezpieczne env locale

STANDARDY

fnmatch()
    POSIX.1-2008.

FNM_CASEFOLD
FNM_IGNORECASE
    POSIX.1-2024.

FNM_FILE_NAME
FNM_LEADING_DIR
    GNU.

HISTORIA

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

FNM_CASEFOLD
    było dostępne w wielu systemach nawet przed POSIX.1-2024.

ZOBACZ TAKŻE
sh(1), glob(3), scandir(3), wordexp(3), glob(7)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Adam Byrtek <alpha@irc.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.