2014-08-28 99 views
0

我一直在嘗試使用C中的glob函數來獲取我存儲數據的目錄中的一組文件名。但是,我不斷收到一條錯誤消息,聲稱「無效的參數」。我不知道它指的是什麼論點。這裏是產生錯誤「無效的參數」錯誤,當globbing

#include <stdio.h> 
#include <errno.h> 
#include <string.h> 
#include <stdlib.h> 
#include <glob.h> 

int main(int argc, char *argv[]){ 
    int j = 0, err = 0; 
    glob_t *files = NULL; 
    err = glob("*", GLOB_ERR | GLOB_MARK, NULL, files); 
    if(err){ 
     printf("Error found: %s\n",strerror(errno)); 
     exit(err); 
    } 
    for(j = 0; j < files->gl_pathc; ++j){ 
     printf("%s\n",files->gl_pathv[j]); 
    } 
    return 0; 
} 

尋找盼着您的任何建議

回答

1

目前你逝去的files沒有辦法​​3210實際上可以填充它的方式示例代碼。相反,你需要做的是:

glob_t files = { 0 }; 
err = glob("*", GLOB_ERR | GLOB_MARK, NULL, &files); 

你還應該再打globfree(&files)清理。

+0

另一解決方案是嘗試 'glob_t *文件= NULL;' '文件= malloc的(的sizeof(glob_t));' 'ERR =水珠( 「*」,GLOB_ERR | GLOB_MARK,NULL,文件); ' 保留「 - >」句法 – 2014-08-28 16:17:37