Как сохранить историю чтения строки в текстовом файле и вызвать ее потом - PullRequest
4 голосов
/ 01 сентября 2011

Можно ли сохранить историю чтения строки в текстовом файле и получить историю после повторного открытия программы ...

char *line, *expansion;
int result;

stifle_history(7);

while ((line = readline(" $ ")) != NULL) {  

        result = history_expand(line, &expansion);

        rl_bind_key('\t',rl_complete);

        if (result)
                fprintf(stderr, "%s\n", expansion);

        if (result < 0 || result == 2) {
                free(expansion);
                continue;
        }

        strncpy(line, expansion, sizeof (line) - 1);
        free(expansion);
        read_history("history_file");
        write_history("history_file");

        register HIST_ENTRY **the_list;
        register int i;

        if (the_list)
                for (i = 0; the_list[i]; i++)
                        printf("%d: %s\n", i + history_base, the_list[i]->line);

        if (strlen(line) > 0) 
                add_history(line);

Я немного улучшил свой код. Пожалуйста, покажите, как я могу исправить свой код, чтобы сохранить историю в текстовом файле и затем извлечь ее.

1 Ответ

4 голосов
/ 01 сентября 2011

Согласно руководству , вы хотите взглянуть на функции write_history и read_history.

...