Successivo: Esempio di estensione Fork, Precedente: Esempio di estensione funzioni file, Su: Esempi di estensione [Contenuti][Indice]
fnmatch()
Quest’estensione fornisce un’interfaccia per utilizzare la funzione di
libreria C fnmatch()
. Si usa così:
@load "fnmatch"
È questo il modo per caricare l’estensione.
risultato = fnmatch(pattern, stringa, flags)
Il valore restituito è zero se tutto va bene, oppure FNM_NOMATCH
se la funzione non ha trovato alcuna corrispondenza, o
un valore differente, diverso da zero, se si è verificato un errore.
Oltre a rendere disponibile la funzione fnmatch()
, l’estensione
di fnmatch
definisce una costante (FNM_NOMATCH
), e un vettore
con dei valori di flag, di nome FNM
.
Gli argomenti per fnmatch()
sono:
pattern
L’espressione regolare con cui confrontare nome-file
stringa
La stringa nome-file
flags
Può valere zero o essere l’OR bit a bit di uno o più flag
nel vettore FNM
I flag sono i seguenti:
Elemento del vettore | Flag corrispondente definito da fnmatch() |
---|---|
FNM["CASEFOLD"] | FNM_CASEFOLD |
FNM["FILE_NAME"] | FNM_FILE_NAME |
FNM["LEADING_DIR"] | FNM_LEADING_DIR |
FNM["NOESCAPE"] | FNM_NOESCAPE |
FNM["PATHNAME"] | FNM_PATHNAME |
FNM["PERIOD"] | FNM_PERIOD |
Ecco un esempio:
@load "fnmatch" … flags = or(FNM["PERIOD"], FNM["NOESCAPE"]) if (fnmatch("*.a", "pippo.c", flags) == FNM_NOMATCH) print "nessuna corrispondenza"