int FindDir(char filename[]){
DIR *dirp;
struct dirent *dp;
if( (dirp = opendir(filename) ) == NULL ) return 1;
do{
if((dp = readdir(dirp)) != NULL){
if(lstat(dp->d_name, &buf) == -1) return 1;
if(S_ISDIR(buf.st_mode)){
if(strcmp(dp->d_name, ".") != 0 && strcmp(dp->d_name, "..") != 0){
if(chdir(dp->d_name)== -1) return;
//тут делаю с названием папок необходимые мне действия
FindDir(".");
if(chdir("../")== -1) return 1;
}
}
}
}while(dp != NULL);
return 0;
}
написать из рекурсии цикл
Помогите переделывать функцию, написанную рекурсивно, в функцию без рекурсии. Трудности, что рекурсия в цикле - у меня тут заканчиваются идеи.
Сама функция:
Код:
Код:
chdir(директория, по которой нужно пройтись);
FindDir(".");
chdir(директория, в которой находиться программа);
FindDir(".");
chdir(директория, в которой находиться программа);