PREV UP NEXT Regex

7.2.4: Reporting Errors

If either regcomp or regexec fail, they return a nonzero error code, the possibilities for which are defined in regex.h. See POSIX Regular Expression Compiling, and POSIX Matching, for what these codes mean. To get an error string corresponding to these codes, you can use:

size_t
regerror (int errcode,
          const regex_t *preg,
          char *errbuf,
          size_t errbuf_size)

errcode is an error code, preg is the address of the pattern buffer which provoked the error, errbuf is the error buffer, and errbuf_size is errbuf's size.

regerror returns the size in bytes of the error string corresponding to errcode (including its terminating null). If errbuf and errbuf_size are nonzero, it also returns in errbuf the first errbuf_size - 1 characters of the error string, followed by a null. errbuf_size must be a nonnegative number less than or equal to the size in bytes of errbuf.

You can call regerror with a null errbuf and a zero errbuf_size to determine how large errbuf need be to accommodate regerror's error string.