Я настраиваю функцию рекурсивного поиска, в которой я хочу отображать первые 8 результатов, а затем (при выборе) показывает следующие 8 результатов
Вот моя функция поиска
static int Search(char *path, const char *file) {
DIR *dir;
char *slash = "/";
int ret = 1;
struct dirent *entry;
if ((dir = opendir(path)) == NULL) {
return EXIT_FAILURE;
}
while ((entry = readdir(dir))) {
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
continue;
//we check if the path has already a / if not we add one
int length = strlen(path);
if (path[length - 1] != '/') {
slash = "/";
}
length += strlen(entry->d_name) + 2;
char *newpath = malloc(length);
if (!newpath) {
break;
}
snprintf(newpath, length, "%s%s%s", path, slash, entry->d_name);
if (strcmp(entry->d_name, file) == 0) {
printf("Was found here %s Search Successful\n", newpath);
/* Entries here Show Only 8 First 8 then later show the Next 8 results*/
ret = EXIT_SUCCESS;
break;
}
if (entry->d_type == DT_DIR)
Search(newpath, file);
else {
free(newpath);
continue;
}
free(newpath);
}
if (closedir(dir) != 0) {
return EXIT_FAILURE;
}
return ret;
}