2010-01-27 95 views
2

我想知道如何通过使用C来更好地控制输入和输出来创建控制台应用程序。例如,文本编辑器nano如何显示文件内容的某个部分屏幕上,然后保留底部静止的命令列表。我知道你可以在Windows中使用win32 API来做到这一点,但是什么是Unix/Linux相同?Linux/Unix控制台图形/控制

回答

5

很可能有一个ncurses界面控制屏幕上的项目在某个位置的屏幕绘图和放置。 api在Linux系统和unix上都是标准的,有些可能是根据unix的商业变体下使用的curses变体来定义的,但除此之外,某些标准ncurses功能是兼容的。

+0

但是,ncurses用于Linux(Ubuntu)的是什么? – MrD 2010-01-27 21:19:41

+0

@Matthew:根据上面的链接,ncurses使用GNU Midnight Commander(文件管理器),Suse的YAST和GNU Screen,仅举几例... – t0mm13b 2010-01-27 21:27:11

+0

@Matthew:ncurses也与termcap(终端功能)以确定使用什么样的控制台,如控制台ASCII,VTerm类型,如多少行和多少列......将termcap视为中间层,底层是控制台图形,顶层是ncurses api。 – t0mm13b 2010-01-27 21:29:04

1

除了ncurses和取决于你的任务,你可能会发现newt,彩色文本模式的库,基于窗口小部件的用户界面,也是一个合适的选择。有时蝾螈的视觉效果会更好。

1

如果你只是想做低层次的东西,你可能想使用termcapterminfo库。

如果你想这样做纳米和几乎所有其他交互式终端应用程序这样做,你可能想使用ncurses。这样,您将花更少的时间来实施终端控制逻辑,并在实际开发的应用程序上花费更多时间。