介绍
ncurses(new curses)是一套编程库,它提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面。 ncurses名字中的n意味着“new”,因为它是curses的自由软件版本。由于AT&T“臭名昭著”的版权政策,人们不得不在后来用ncurses去代替它。 ncurses是GNU计划的一部分,但它却是少数几个不使用GNU GPL或LGPL授权的GNU软件之一。
其实我们对ncurses本身并不陌生,以下几款大名鼎鼎的软件都用到过ncurses:
vim
emacs
lynx
screen
作为嵌入式驱动开发工程师,Linux内核的配置也离不开ncurses库的使用。
安装与使用
Linux
以ubuntu 16.04为例
$ sudo apt-get install libncurses5-dev
安装完毕后,我们写下如下代码:
//test.c
#include <string.h>
#include <ncurses.h>
int main(int argc,char* argv[]){
initscr();
raw();
noecho();
curs_set(0);
char* ptr = "Hello, StephenWen!";
mvprintw(LINES/2,(COLS-strlen(ptr))/2,ptr);
refresh();
getch();
endwin();
return 0;
}
然后使用gcc编译后执行看看效果,不要忘了加**-lncurses**哦。
$ gcc test.c -o test -lncurses
$ ./test
不出意外的话结果如下:
特别在进行linux配置执行make menuconfig的时候,也得安装ncurses的库,否则弹出关于该库的缺失,倘若该库已经被正常安装,则执行make menuconfig命令时,控制台会显示配置界面如下: