C++ 命令行界面

标签 c++ linux command-line-interface

我目前正在设计一个 Linux C++ 应用程序。它将从命令行运行,然后一旦运行,我需要能够发出命令来控制它的执行,理想情况下如下所示:

$ sudo ./myapplication
APP > 
APP > 
APP > //just pressing return
APP > openlog test1.txt //APP will now call the openlog function
APP >

我想这是一个相对简单的任务,但我不知道为了搜索一个这样的接口(interface)会调用什么。有人知道可以执行此功能的库或示例吗?或者我是否需要使用 cout 和 cin 编写自己的代码?如果是这样,是否有任何首选方法?

最佳答案

为此,我推荐 GNU readline 库。它负责获取输入行的繁琐工作,并允许用户使用退格键、左右箭头等编辑他的行,并使用向上箭头调用旧命令,甚至使用 ^R 搜索旧命令,等等。Readline 随典型的类 unix 发行版一起安装,如 linux,但如果你没有,你可以找到它 here .

编辑:这是一个最小的 readline 示例:

#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>

int main(int argc, char ** argv)
{
    while(1)
    {
        char * line = readline("> ");
        if(!line) break;
        if(*line) add_history(line);
        /* Do something with the line here */
        free(line);
    }
}

关于C++ 命令行界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168833/

相关文章:

c - fgets 被跳过/不停止输入

c++ - 无法在cocos2dx中显示Menu MenuItemImage

c++ - 音频数据?我需要一个典型的例子

c++ - 关注 2d 播放器 openGL

php - Linux Ubuntu 16.04 通过http请求远程点击

php - 如何在 phpfarm php 安装上安装 pthreads

c++ - 使用\in 字符串作为文字而不是转义符

ruby-on-rails - 删除 Rails 应用程序?

linux - Centos 6.6 shell 脚本 - 意外 token 附近出现语法错误

python - 如何在 python 中为命令行应用程序构建交互式菜单?