Завершение имени файла - это встроенная функция readline, вам не нужно заполнять списки имен файлов и т. Д. Здесь, с readline 6.1, следующая программа разрешает завершение имени файла по умолчанию.
#include <stdio.h>
#include <stdlib.h>
#include <readline/readline.h>
#include <readline/history.h>
int main()
{
printf( "%s\n", readline( "test> " ) );
return 0;
}
Есть способы настроить этот механизм, например, Вы можете указать некоторые функции, такие как rl_filename_quoting_function
и rl_filename_dequoting_function
, чтобы помочь readline обеспечить правильное цитирование имени файла для вашего приложения.
Я думаю, вам нужно указать свою версию readline, если она не работает для вас. /etc/inputrc
содержание также должно быть проверено. У вас есть bash
, который использует readline? Работает ли завершение файла там, как ожидалось?
В любом случае, info readline
- это очень хорошая документация, при условии, что вы можете использовать сам info
:) Если нет, посмотрите на Программирование с помощью GNU Readline .