Глоб в C ++ и распечатать результаты

Я просто пытаюсь скопировать все в каталоге и распечатать список результатов, но я получаю пустой printf:

#include <glob.h>
#include <stdio.h>

int main()
{
int result;
glob_t buffer;
buffer.gl_offs = 10;
glob("*", GLOB_DOOFFS, NULL, &buffer);
printf((char*)buffer.gl_pathv);
}

Что работает

printf("%i", buffer.gl_pathc));

1

Решение

Вам нужно зарезервировать пустые слоты в Glob? Не включать GLOB_DOOFFS если тебе это не нужно
И не забудьте освободить память для глобуса.

Попробуйте что-то вроде этого:

#include <glob.h>
#include <stdio.h>

int main() {

glob_t globbuf;
int err = glob("*", 0, NULL, &globbuf);
if(err == 0)
{
for (size_t i = 0; i < globbuf.gl_pathc; i++)
{
printf("%s\n", globbuf.gl_pathv[i]);
}

globfree(&globbuf);
}

return 0;
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]