我只是想遍历目录中的所有内容并打印结果列表,但我得到一个空的 printf:
#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));
最佳答案
需要在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;
}
关于c++ - C++ 中的 Glob 并打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15085633/