2013-02-26 5 views
1

난 그냥 디렉토리에있는 모든 glob에 결과의 목록을 인쇄하기 위해 노력하고있어,하지만 난 빈의 printf 얻을 :++ C에서 글롭과 결과를 인쇄

작업이

printf("%i", buffer.gl_pathc)); 
무엇입니까 않습니다
#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); 
} 

답변

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

한 덕분에, 나는 globfree 기능을 위해 예약 된 슬롯과 감사를 필요로하지 않았다. – jdborg