Пишу консольную программу под линукс, у нее должен быть сетевой интерфейс (вэб-служба какая-нибудь), но хочу предусмотреть возможность локального управления ее работой, например, организовать ввод от пользователя команд с параметрами, но не простым чтением stdin с помощью scanf, а с возможностью редактировать команды (использовать перемещение курсора, del, backspace) и вызывать на редактирование предыдущие команды (вверх-вниз), как это делается в менеджерах консоли типа sh.
подозреваю, что эта задача не нова, но никак не могу найти библиотечку на языках C/C++, которая бы это реализовала.
Поможите, если кто знает, есть такой готовый компонент?