regerror() 函数原型如下:
[C++] 纯文本查看 复制代码 #include <sys/types.h>
#include <regex.h>
size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size);
该函数用来取得regcomp() 和 regexec() 两个函数发生错误的原因。preg 指向 patter buffer 。errcode 是 regcomp() 或 regexec() 返回的错误代码。errbuf 用来存放错误字符串的缓冲区,参数 errbuf_size 则是该该缓冲区的大小。函数返回错误字符串的长度。
测试代码:
[C++] 纯文本查看 复制代码 #include <stdio.h>
#include <regex.h>
int main()
{
regex_t preg;
char *regex = "[ab[d";
char errbuf[256];
int errcode;
errcode = regcomp(&preg, regex, 0);
if (errcode != 0) {
regerror(errcode, &preg, errbuf, sizeof(errbuf));
printf ("regerror : %s\n", errbuf);
}
return 0;
}
运行输出:[beyes@beyes normal]$ ./regerror
regerror : Unmatched [ or [^ |