d1a424c002
This will allow us to redefine the exit function.
For example:
```
#define exit(code) { \
fprintf(stderr, "%s:%d: exit(%s) in function ‘%s’\n",
__FILE__, __LINE__, #code, __func__); \
_exit(code); \
}
```
33 lines
831 B
C
33 lines
831 B
C
#include <regex.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
int main(void) {
|
|
regex_t regex;
|
|
char error_buf[256];
|
|
|
|
int error = regcomp(®ex, "h.llo \\(w.rld\\)", REG_ICASE);
|
|
if (error) {
|
|
regerror(error, ®ex, error_buf, 255);
|
|
error_buf[255] = 0;
|
|
printf("regcomp error: %d = %s\n", error, error_buf);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
regmatch_t matches[3] = {{0}};
|
|
|
|
error = regexec(®ex, "Hey, how are you? Hello? Hallo Wurld??", 3, matches, 0);
|
|
|
|
regfree(®ex);
|
|
|
|
if (error) {
|
|
regerror(error, ®ex, error_buf, 255);
|
|
printf("regexec error: %d = %s\n", error, error_buf);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
for (int group = 0; group < 3; group += 1) {
|
|
printf("Matching group: %d - %d\n", matches[group].rm_so, matches[group].rm_eo);
|
|
}
|
|
}
|