FNMATCH - Linux手册页
时间:2019-08-20 18:00:20 来源:igfitidea点击:
Linux程序员手册 第3部分
更新日期: 2019-03-06
名称
fnmatch-匹配文件名或路径名
语法
#include <fnmatch.h> int fnmatch(const char *pattern, const char *string, int flags);
说明
fnmatch()函数检查string参数是否与pattern参数匹配,pattern参数是shell通配符模式(请参阅glob(7))。
flags参数修改行为。它是零个或多个以下标志的按位或:
- FNM_NOESCAPE
- 如果设置了此标志,则将反斜杠视为普通字符,而不是转义字符。
- FNM_PATHNAME
- 如果设置了此标志,则仅将字符串中的斜杠与模式中的斜杠匹配,而不是星号(*)或问号(?)元字符,也不匹配包含斜杠的方括号表达式([])。
- FNM_PERIOD
- 如果设置了此标志,则字符串中的前导期间必须与模式中的期间精确匹配。如果句点是字符串中的第一个字符,或者同时设置了两个FNM_PATHNAME并且句点紧跟斜杠,则认为句点是前导。
- FNM_FILE_NAME
- 这是FNM_PATHNAME的GNU同义词。
- FNM_LEADING_DIR
- 如果设置了此标志(GNU扩展名),则该模式如果与字符串的初始段(后跟一个斜杠)匹配,则认为该模式已匹配。该标志主要供内部使用glibc,仅在某些情况下才实现。
- FNM_CASEFOLD
- 如果设置了此标志(GNU扩展名),则模式不区分大小写地匹配。
- FNM_EXTMATCH
- 如果设置了此标志(GNU扩展),则支持扩展模式,如'ksh'所介绍的,现在其他shell也支持。扩展格式如下,其中pattern-list为'|'模式列表。
- '?(pattern-list)'
- 如果模式列表中任何模式的零个或一次出现与输入字符串匹配,则该模式匹配。
- '*(pattern-list)'
- 如果模式列表中出现的零个或多个模式与输入字符串匹配,则该模式匹配。
- '+(pattern-list)'
- 如果模式列表中的任何一个或多个模式匹配输入字符串,则该模式匹配。
- '@(pattern-list)'
- 如果模式列表中的任何一个模式中的一个恰好与输入字符串匹配,则该模式匹配。
- '!(pattern-list)'
- 如果输入字符串不能与pattern-list中的任何模式匹配,则该模式匹配。
返回值
如果字符串匹配模式,则为零;如果不匹配,则为FNM_NOMATCH;如果有错误,则为另一个非零值。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
fnmatch() | Thread safety | MT-Safe env locale |
遵循规范
POSIX.1-2001,POSIX.1-2008,POSIX.2 FNM_FILE_NAME,FNM_LEADING_DIR和FNM_CASEFOLD标志是GNU扩展。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。