2013-02-26 2 views
1

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

#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)); 

ответ

3

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

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

#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; 
} 
+0

+1 Спасибо, мне не нужно зарезервированные слоты и спасибо для функции globfree. – jdborg