“无效的参数”错误,当globbing

问题描述:

我一直在尝试使用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; 
} 

寻找盼着您的任何建议

目前你逝去的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