NFTW отличается от BSD? - PullRequest
       18

NFTW отличается от BSD?

1 голос
/ 11 ноября 2011

Я пытаюсь получить все .c файлы в дереве каталогов, используя nftw со следующим кодом:

static int gf(const char *path, const struct stat *st, int t, struct FTW *ftw) {
    if (t != FTW_F)
        return 0;
    if (strcmp(ext(path), ".c") == 0)
        addl(&files, dup(abspath(path)));
    return 0;
}

void getfiles(char *path) {
    nftw(path, gf, 255, FTW_PHYS);
}

Он работает на Linux и Solaris, но на PC-BSD не работает, просто не собирая файлы. Чего мне не хватает?

1 Ответ

1 голос
/ 13 ноября 2011

Что такое возвращаемое значение nftw? Если это -1 и errno is установлено на EINVAL, вполне вероятно, что вы превышаете значение OPEN_MAX. Попробуйте передать меньшее значение в качестве третьего параметра в nftw и убедитесь, что оно меньше OPEN_MAX.

...