Я просто пытаюсь скопировать все в каталоге и распечатать список результатов, но я получаю пустой 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));
Вам нужно зарезервировать пустые слоты в 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;
}
Других решений пока нет …