【发布时间】:2014-02-19 11:10:41
【问题描述】:
我是一个 C 初学者,我对如何做到这一点有点困惑。我正在尝试使用 readdir 和 strcmp 函数,但它会给我带来很多错误。
#include <stdio.h>
#include <sys/types.h>
#include <string.h>
#include <dirent.h>
int main(int argc, char *argv[])
{
DIR *dirp;
struct dirent *direntp;
dirp = opendir(argv[1]);
if (dirp == NULL)
{
printf("File could not be open\n");
return -1;
}
int i = 0;
while((direntp[i]=readdir(dirp)) != NULL)
{
if(strcmp(direntp[i], argv[2]) == 0)
{
printf("The file %d is in directory %s my friend!", argv[2], dirp);
}
i++;
}
closedir(dirp);
return 0;
}
【问题讨论】:
-
首先你必须用谷歌搜索你的问题,如果你遇到任何错误,然后在你的问题中发布你的代码和错误列表。 stackoverflow.com/q/230062/3184380
-
另外,您的目录内容迭代器很烂。在您的情况下,您还应该检查
direntp[i]是否实际上是一个文件 -if (direntp[i]->d_type == DT_REG) {}。正如我前段时间建议的那样here。
标签: c