我正在编写一个代码来使用depth first
算法遍历目录。问题是程序没有显示任何内容并给出Segmentation Fault error
. 我试图调试它,但它毫无价值,因为我还在学习东西。所以现在我需要专家的帮助。这是代码:
void func(char path[]);
int main(int argc, char *argv) {
char buf[255];
scanf("%s",buf);
func(buf);
return 0;
}
void func(char path[]) {
DIR *dirp;
struct stat states;
struct dirent *direntp;
printf("Inside\n");
dirp=opendir(path);
stat(path, &states);
while ((direntp=readdir(dirp)) != NULL) {
if (S_ISDIR(states.st_mode)) {
printf("Calling Func\n");
func(direntp->d_name);
chdir("..");
} else if (!S_ISDIR(states.st_mode)) {
printf(" %s\n", direntp->d_name);
} else if (!strcmp(direntp->d_name, ".") || !strcmp(direntp->d_name, "..")) {
continue;
}
}
return ;
}