曲径通幽论坛

标题: regerror() -- 取得正则函数的出错信息 [打印本页]

作者: beyes    时间: 2012-1-9 12:26
标题: regerror() -- 取得正则函数的出错信息
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 [^





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2