C &引用;无效参数";全球化时出错
我一直在尝试使用C中的glob函数在我存储数据的目录中获取一组文件名。然而,我不断收到一条错误消息,声称“参数无效”。我不知道它指的是什么论点。下面是产生错误的示例代码C &引用;无效参数";全球化时出错,c,gnu,glob,C,Gnu,Glob,我一直在尝试使用C中的glob函数在我存储数据的目录中获取一组文件名。然而,我不断收到一条错误消息,声称“参数无效”。我不知道它指的是什么论点。下面是产生错误的示例代码 #include <stdio.h> #include <errno.h> #include <string.h> #include <stdlib.h> #include <glob.h> int main(int argc, char *argv[]){
#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;
}
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[]){
int j=0,err=0;
glob_t*files=NULL;
err=glob(“*”,glob_err | glob_MARK,NULL,files);
如果(错误){
printf(“发现错误:%s\n”,strerror(errno));
退出(err);
}
对于(j=0;jgl_pathc;++j){
printf(“%s\n”,文件->gl_pathv[j]);
}
返回0;
}
寻找任何建议您当前传递
文件的方式
实际上没有办法填充glob()
。相反,您要做的是:
glob_t files = { 0 };
err = glob("*", GLOB_ERR | GLOB_MARK, NULL, &files);
您还应该稍后调用
globfree(&files)
进行清理。另一个解决方案是尝试glob\u t*files=NULL代码>files=malloc(sizeof(glob_t))代码>err=glob(“*”,glob_err | glob_MARK,NULL,文件)编码>以保持“->”合成