一,初始化和终止
WINDOW *initscr(void);
SCREEN *newterm(char *type, FILE *outfd, FILE *infd);
initscr用来创建和初始化stdscr,curscr,以及通过查询terminfo和termcap数据库来发现终端的能力和特性,如果在此过程中出现了错误,那么initscr将会显示提示信息,并终止程序的执行。如果函数执行成功将返回stdscr指针,否则返回NULL,并终止程序的执行。
如果是多个终端,则需要用newterm来代替initscr的工作,他返回一个SCREEN类型的变量,用来在引用一个终端时使用。type是一个将被使用的字符串,用来代替环境变量$TERM,如果为NULL,则$TERM将被使用,outfd用来输出到终端的文件,infd从终端获得输入的文件。
在使用一个终端时,必须先将终端设置为当前终端,
SCREEN *set_term(SCREEN *new);
int endwin(void);
void delscreen(SCREEN* sp);
在使用完之后应将释放资源,并将屏幕的模式设置回原来的状态,如果程序中没有使用newterm函数建立新的终端,那么只需要调用endwin来释放当前终端的资源,否则就应该使用delscreen来删除用newterm建立的SCREEN。
#include <stdlib.h>
#include <curses.h>
int main(void)
{
initscr();
printw("This is a curses window.\n");
refresh();
getch();
endwin();
return 0;
}
二,输入输出
int addch(chtype ch);
int echochar(const chtype ch);
int insch(chtype ch);
int addchstr(const chtype *chstr);
int addchnstr(const chtype *chstr, int n);
int addstr(const char *str);
int addnstr(const char *str, int n);
他将字符ch显示到当前窗口光标所在的位置,并移动光标到下一个位置,如果输出超过右边界,则会折行显示,如果开启滚动,并且光标处于可滚动区域的底部,该区域将向前滚动一行,同时,字符在输出的时候还可以与下面的值进行或操作进行输出。
A_NORMAL Normal display (no highlight) 标准模式
A_STANDOUT Best highlighting mode of the terminal. 使用终