FNMATCH(3)

명칭
fnmatch - 파일명이나 패스명을 조합한다

서식
#include <fnmatch.h> int fnmatch(const char *pattern, const char *string, int flags)

해설
fnmatch() 함수는, 쉘이 사용하는 규칙에 따라 패턴을 조합합니다. string 인수가 지정하는 캐릭터 라인을 체크해, pattern 인수가 지정하는 패턴과 일치하는지 어떤지 확인합니다.

flags 인수는, pattern (와)과 string 의 해석을 수정합니다. flags 의 값은, 이하의 정수의 비트 단위의 논리합입니다. 이 정수는, 인클루드 파일 fnmatch.h 그리고 정의되고 있습니다.

FNM_NOESCAPE
    통상, pattern 중(안)에서 backslash (‘\’) 의 뒤로 1 캐릭터가 계속되는 것이 나타날 때 마다, 그것은 그 캐릭터로 옮겨놓을 수 있습니다. 이 치환은, 그 캐릭터의 특수한 의미를 무효로 하기 위해서(때문에) 실행됩니다. FNM_NOESCAPE 플래그를 설정하면(자), backslash 캐릭터는 통상 캐릭터로서 다루어집니다.

FNM_PATHNAME
    string 의 slash 캐릭터는, pattern 안의 slash와 명확하게 일치할 필요가 있습니다. 이 플래그를 설정하지 않으면 slash는 통상 캐릭터로서 다루어집니다.

FNM_PERIOD
    string 의 최초의 피리어드는, pattern 안의 최초의 피리어드와 명확하게 일치할 필요가 있습니다. 이 플래그를 설정하지 않으면 최초의 피리어드는 통상 캐릭터로서 다루어집니다. 「최초의 것」이라고 하는 말의 정의는, FNM_PATHNAME 의 지정에 의해 변화합니다. string 의 제 1 캐릭터인 피리어드는, 항상 「최초의」피리어드입니다. FNM_PATHNAME (을)를 설정했을 경우, slash의 직후의 피리어드도 「최초의」피리어드입니다.

FNM_LEADING_DIR
    pattern 하지만 문제 없게 일치한 후, 나머지의 /* (을)를 무시합니다.

FNM_CASEFOLD
    pattern (와)과 string 의 양쪽 모두로 대문자와 소문자의 구별을 무시합니다.

반환값
fnmatch() 함수는, pattern 하지만 지정하는 패턴에 string 하지만 일치하면(자) 제로를 되돌립니다. 일치하지 않는 경우는 값 FNM_NOMATCH (을)를 되돌립니다.

관련 항목
sh(1), glob(3), regex(3)

표준
fnmatch() 함수는, p1003.2 에 준거하고 있습니다.

역사
fnmatch() 함수는, 4.4BSD 에 추가되었습니다.

버그
FNM_PATHNAME (을)를 지정해도, 패턴 ‘*’ (은)는 하늘 string와 일치합니다.