【发布时间】:2012-12-13 08:37:31
【问题描述】:
我正在尝试遍历一个目录,该目录的路径已给出,但以下程序未进入该目录并陷入无限循环。这段代码有什么问题:
void func(char path[]);
int main(int argc, char *argv)
{
char buf[255];
getcwd(buf,255);
func(buf);
}
void func(char path[])
{
DIR *dirp;
struct stat states;
struct dirent *direntp;
dirp=opendir(path);
chdir(path);
while((direntp=readdir(dirp))!=NULL)
{
if(S_ISDIR(states.st_mode))//true than returns zero
{
printf("%s\n",direntp->d_name);
}
else
if(!(strcmp(direntp->d_name,".")||strcmp(direntp->d_name,"..")))// if true retrns zero
{
continue;
}
else
{
func(direntp->d_name);
chdir("..");
}
}
}
【问题讨论】: