Функция поиска, которая показывает 8 результатов одновременно в C - PullRequest
0 голосов
/ 17 апреля 2019

Я настраиваю функцию рекурсивного поиска, в которой я хочу отображать первые 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;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...