众所周知,linux下有大部分程序是基于字符终端的。字符终端是很高校很强大的工具,尽管linux在桌面环境方面不断发展,但是字符终端的功能从来都没有被减弱,而且不断有新的特性出现。
尽管字符界面可以让使用者显得很专业,不过它的“丑陋”是路人皆知的,很多新手因此望而却步。如果在保持字符界面节省系统资源的情况下,具有良好的视觉特性,那么某些人对它的看法或许会有改变。
当然,linux早就提供了一系列终端I/O的接口供用户使用,不过这些函数数量不少,更有相当数量的标志设置符,涉及到终端的很多细节。“波特率”这个东西有多少人听过?在终端和主机还在用串口线连接的时代,“波特率”指的是每秒中传输的二进制数位数。
ncurse是终端下实现简单图形界面的不二选择。ncurse的前身是curses,著名的vi就是基于curses的。ncurse提供了大量方便的接口供用户使用,简单举例一下。
initscr():必须的,写在最开始,ncurses帮你完成初始化。
endwin():必须的,写在最后。
noecho():关闭回显。
move(int x,int y):移动光标到x,y。
printw(“format string”,….):从光标处开始输出,跟printf差不多。
refresh():输出完毕要刷新才能显示。
clear():清屏。
getch():从光标处读入一个字符。
这些都是很简单的了,我就用这些写了个扫雷。当然还有很多关于“窗口”的函数,对,在终端显示窗口,有兴趣的可以看看手册。
怎么编译呢?直接 gcc -o是不行的…你先要看看系统里头有没有ncurse库,没有得自己编译一个,这里有详细说明:http://lamp.linux.gov.cn/Linux/LFS-6.2/chapter06/ncurses.html