gpt4 book ai didi

c - 获取目录中的文件列表

转载 作者:行者123 更新时间:2023-12-04 10:44:13 25 4
gpt4 key购买 nike

我正在处理一个 C 项目,我需要在该项目中获取目录中的文件列表。我正在使用 dirent.h 但在运行时遇到了一些问题,我正在 Linux 下构建程序。

当我尝试构建程序时出现以下错误

myClass:error: âDIRâ undeclared (first use in this function)
myClass:408: error: (Each undeclared identifier is reported only once
myClass:408: error: for each function it appears in.)
myClass:408: error: âdirâ undeclared (first use in this function)
myClass:410: warning: implicit declaration of function âopendirâ
myClass:413: warning: implicit declaration of function âreaddirâ
myClass:413: warning: assignment makes pointer from integer without a cast
myClass:415: error: dereferencing pointer to incomplete type
myClass:417: warning: implicit declaration of function âclosedirâ

下面是我使用的代码

int logMaintenance(void *arg)
{
DIR *dir;
struct dirent *ent;
dir = opendir(directory);
if (dir != NULL)
{
while ((ent = readdir (dir)) != NULL)
{
printf("%s\n", ent->d_name);
}
closedir(dir);
}
else
{
printf("Failed to read directory %i", EXIT_FAILURE);
}
return 0;
}

我不明白这些错误是什么意思,尤其是当我包含 Liunux 的 dirent.h 头文件时它说 DIR 未声明。

感谢您的帮助。

最佳答案

您应该确保:

  • #include <dirent.h> , 而不是 "dirent.h" , 以便使用 header 的系统搜索路径来定位该文件
  • 您没有 dirent.h文件位于您项目中的某处,可以取而代之。

当尝试调试这类奇怪的问题时,请使用 gcc -E 向 GCC 请求预处理的输出。 .您可以看到它包含哪些文件(包括路径)。这会有很大帮助。

如果您使用的是 Microsoft Visual Studio,请转到以下问题:
Microsoft Visual Studio: opendir() and readdir(), how?

关于c - 获取目录中的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10384263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com