fnmatch - Rechercher une correspondance entre un nom de fichier ou un chemin et
un motif
Bibliothèque C standard (
libc,
-lc)
#include <fnmatch.h>
int fnmatch(const char *motif, const char *chaîne, int drapeaux);
La fonction
fnmatch() vérifie si l'argument
chaîne
correspond au
motif qui est un motif avec des
méta-caractères de l'interpréteur de commandes (voir
glob(7)).
L'argument
drapeaux modifie le comportement de la fonction. C'est un
OU binaire entre zéro ou plusieurs des drapeaux
suivants :
- FNM_NOESCAPE
- Si ce drapeau est défini, traiter la barre oblique
inverse « \ » comme un caractère
ordinaire et non comme un caractère d'échappement.
- FNM_PATHNAME
- Si ce drapeau est défini, ne faire correspondre une
barre oblique « / » dans chaîne
qu'avec une barre oblique dans motif, et pas avec les
méta-caractères « * » ou
« ? », ni avec une expression entre crochets
« [] » contenant une barre oblique.
- FNM_PERIOD
- Si ce drapeau est défini, un point en début
de chaîne doit correspondre exactement à un point
dans motif. Un point est considéré comme en
début de chaîne, s'il est le premier caractère de
chaîne, ou si FNM_PATHNAME est défini alors
que le point suit immédiatement une barre oblique.
- FNM_FILE_NAME
- Il s'agit d'un synonyme GNU de FNM_PATHNAME.
- FNM_LEADING_DIR
- Si ce drapeau (une extension GNU) est défini, la
correspondance est considérée comme correcte si le motif
correspond à un segment initial de la chaîne
chaîne suivi d'une barre oblique. Ce drapeau est
réservé à un usage interne de la glibc et n'est pas
toujours implémenté.
- FNM_CASEFOLD
- Si ce drapeau (une extension GNU) est défini, la
correspondance est recherchée sans tenir compte de la casse.
- FNM_EXTMATCH
- Si ce drapeau (extension GNU) est défini, les motifs
étendus sont pris en charge tels qu'introduits par
« ksh », et désormais pris en charge
par d'autres interpréteurs de commandes. Le format étendu se
présente comme suit, liste_motifs étant une liste de
motifs séparés par des
« | ».
- « ?(liste_motifs) »
- Le motif correspond si au plus une occurrence des motifs
listés dans liste_motifs correspond à la
chaîne spécifiée.
- « *(liste_motifs) »
- Le motif correspond si zéro ou plusieurs occurrences
des motifs listés dans liste_motifs correspondent à
la chaîne spécifiée.
- « +(liste_motifs) »
- Le motif correspond si au moins une occurrence des motifs
listés dans liste_motifs correspond à la
chaîne spécifiée.
- « @(liste_motifs) »
- Le motif correspond si une et une seule occurrence des
motifs listés dans liste_motifs correspond à la
chaîne spécifiée.
- « !(liste_motifs) »
- Le motif correspond si la chaîne
spécifiée ne peut correspondre à aucun des motifs
listés dans liste_motifs.
Zéro si
chaîne correspond au
motif,
FNM_NOMATCH s'il n'y a pas correspondance et une autre valeur non nulle
s'il y a une erreur.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
fnmatch() |
Sécurité des threads |
MT-Safe env locale |
POSIX.1-2001, POSIX.1-2008, POSIX.2. Les drapeaux
FNM_FILE_NAME,
FNM_LEADING_DIR et
FNM_CASEFOLD sont des extensions GNU.
sh(1),
glob(3),
scandir(3),
wordexp(3),
glob(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Lucien Gentis
<
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]