EN JA
FNMATCH(3)
FNMATCH(3) FreeBSD Library Functions Manual FNMATCH(3)

名称

fnmatchファイル名かパス名がシェルスタイルパターンにマッチするかどうかテストする

ライブラリ

Standard C Library (libc, -lc)

書式

#include < fnmatch.h>

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

解説

fnmatch() 関数は、シェルが使用する規則に従ってパターンマッチを行います。 string 引数が指定する文字列をチェックし、 pattern 引数が指定するパターンとマッチするか調べます。

flags 引数は、 patternstring の解釈を修正します。 flags の値は、以下の定数のビット単位の論理和 (OR) です。この定数は、インクルードファイル < fnmatch.h> で定義されています。

FNM_NOESCAPE
通常、 pattern の中でバックスラッシュ (‘ \’) の後ろ続く 1 文字が現れるごとに、それはその文字で置き換えられます。これは、その文字の特殊な意味を無効にするために行われます。 FNM_NOESCAPE フラグが設定されると、バックスラッシュ文字は通常文字として扱われます。
FNM_PATHNAME
string 中のスラッシュ文字は、 pattern 中のスラッシュと明確にマッチしなければなりません。このフラグが設定されていないと、スラッシュは通常文字として扱われます。
FNM_PERIOD
string 中の先導する(leading)ピリオドは、 pattern 中の先導するピリオドと明確にマッチしなければなりません。このフラグを設定されていないと、先導するピリオドは通常文字として扱われます。“先導する”という言葉の定義は、 FNM_PATHNAME の指定によって変化します。 string 中の最初の文字であるピリオドは、常に“先導する”ピリオドです。 FNM_PATHNAME が設定された場合、スラッシュの直後のピリオドも「先導する」ピリオドとなります。
FNM_LEADING_DIR
pattern が問題なくマッチした後、残りの“ /*”を無視します。
FNM_CASEFOLD
patternstring の両方で大文字と小文字の区別をしません。

戻り値

fnmatch() 関数は、 pattern で指定されたパターンに string がマッチすると 0 を戻します。そうでなければ値 FNM_NOMATCH を戻します。

関連項目

sh(1), glob(3), regex(3)

規格

fnmatch() 関数の現在の実装は、 IEEE Std 1003.2 (“POSIX.2”) に適合していません。照合シンボル式、同値類式と文字クラス式はサポートされません。

歴史

fnmatch() 関数は、 4.4BSD で登場しました。

バグ

FNM_PATHNAME を指定しても、パターン‘ *’は空文字列とマッチします。
July 18, 2004 FreeBSD