#include #include #include #include #include #include int readEnv(FILE *fh) { int ret; char name[1024], value[8192]; while (1) { if ((ret = fscanf(fh, "%1023[^=]=%8191[^\n]\n", &name, &value)) == EOF) break; else if (ret == 0) break; fprintf(stderr, "Setting: '%s' = '%s'\n", name, value); setenv(name, value, 1); } return 0; } int reMatch(const char *regex, const char *str) { char reErr[1024] = {0}; regex_t *re = calloc(1, sizeof(regex_t)); int rc = 0; if (!re) return -1; rc = regcomp(re, regex, REG_EXTENDED|REG_ICASE|REG_NOSUB); if (rc != 0) { regerror(rc, re, reErr, 1024); fprintf(stderr, "Regex compile err: %s %s\n", regex, reErr); return -1; } rc = regexec(re, str, 0, NULL, 0); regfree(re); if (rc != 0) { regerror(rc, re, reErr, 1024); fprintf(stderr, "Regex match error: %s -> %s : %s\n", regex, str, reErr); return -1; } return rc; }